8

给定以下 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 > 35,将“great_cty”定义为 cty > 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 vs. great_cty,它不会告诉我们太多:

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

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

4

2 回答 2

21

您当然可以通过对 ggplot 进行外部计数来做到这一点,但是 ggplot 的一大优点是您可以在内部进行许多这些统计!

使用上面的 mpg 示例:

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

替代文字

于 2009-10-02T20:57:51.080 回答
0

因为接受的答案使用了不推荐使用的功能,所以我会指出这个适用于的替代答案ggplot2 1.0.1

ggplot2 可视化绘制在彼此之上的点数:stat_bin2d 或 geom_tile 或点大小?

于 2015-09-17T19:21:43.993 回答