按ggplot2图表中的因子计算

时间:2009-10-02 19:44:08

标签: r ggplot2

给出以下ggplot2图表:

ggplot(my_data, aes(colour=my_factor) +   
                geom_point(aes(x=prior, y=current)) +   
                facet_grid(gender ~ age)

我想使点的大小与先前/当前组合的my_factor的计数成比例。

ggplot(my_data, aes(colour=my_factor, 
                size=<something-here>(my_factor)) +   
                geom_point(aes(x=prior, y=current)) + 
                facet_grid(gender ~ age)

有什么想法吗?

==编辑==

这是一个基于mpg数据集的非常简单的例子。让我们将“great_hwy”定义为hwy&gt; 35,并且“great_cty”为cty&gt; 25:

mpg$great_hwy[mpg$hwy > 35]  <-1
mpg$great_hwy[mpg$hwy <= 35] <-0
mpg$great_hwy <- factor(mpg$great_hwy)

mpg$great_cty[mpg$cty > 25]  <- 1
mpg$great_cty[mpg$cty <= 25] <- 0
mpg$great_cty <- factor(mpg$great_cty)

如果我们对great_hwy和great_cty进行策划,它就不会告诉我们太多:

ggplot(mpg) + geom_point(aes(x=great_cty, y=great_hwy))

如何根据x / y点的数量使数据点更大?希望这可以解决它,但请让我知道。

2 个答案:

答案 0 :(得分:20)

你当然可以通过计算外部ggplot来做到这一点,但ggplot的一个好处就是你可以在内部做很多这些统计!

使用上面的mpg示例:

ggplot(mpg) + 
  geom_point(aes(x=great_cty, y=great_hwy, 
                 size=..count..), stat="bin")

alt text

答案 1 :(得分:0)

由于接受的答案使用了已弃用的功能,因此我会指出这个替代答案适用于ggplot2 1.0.1

ggplot2 visualizing counts of points plotted on top of each other: stat_bin2d or geom_tile or point size?