如何使用stat_bin2d()计算ggplot2中的计数标签? [英] How to use stat_bin2d() to compute counts labels in ggplot2?

查看:158
本文介绍了如何使用stat_bin2d()计算ggplot2中的计数标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望构建一个情节,基本上与我可以使用ggplots的stat_bin2d'图层产生的情节相同,但是不是将计数映射到变量,而是希望与该情景相关联的计数显示为标签到每个bin。



我从


I wish to build a plot, essentially identical to that which i can produce using ggplots 'stat_bin2d' layer, however instead of the counts being mapped to a variable, I want the counts associated with the bin to be displayed as a label to each bin.

I got the following solution to the equivalent 1D problem from another thread

data <- data.frame(x = rnorm(1000), y = rnorm(1000))

ggplot(data, aes(x = x)) +
  stat_bin() +  
  stat_bin(geom="text", aes(label=..count..), vjust=-1.5)

The counts for each bin are clearly labeled. However moving from the 1D to 2D case, this works,

ggplot(data, aes(x = x, y = y)) +
  stat_bin2d()

But this returns an error.

ggplot(data, aes(x = x, y = y)) +
  stat_bin2d() +  
  stat_bin2d(geom="text", aes(label=..count..))

Error: geom_text requires the following missing aesthetics: x, y

解决方案

In more recent versions of ggplot this is perfectly possible and works without errors.

Just be sure that you use the same arguments to both call of stat_bin2d(). For example, set binwidth = 1 on both lines:

library(ggplot2)
data <- data.frame(x = rnorm(1000), y = rnorm(1000))

ggplot(data, aes(x = x, y = y)) +
  geom_bin2d(binwidth = 1) + 
  stat_bin2d(geom = "text", aes(label = ..count..), binwidth = 1) +
  scale_fill_gradient(low = "white", high = "red") +
  xlim(-4, 4) +
  ylim(-4, 4) +
  coord_equal()

这篇关于如何使用stat_bin2d()计算ggplot2中的计数标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆