代码之家  ›  专栏  ›  技术社区  ›  hgmnz

ggplot2图表中按因子计数

  •  8
  • hgmnz  · 技术社区  · 15 年前

    给出以下ggplot2图表:

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

    我想使这些点的大小与之前/当前组合的\系数的计数成比例。

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

    有什么想法吗?

    =编辑=

    下面是一个基于MPG数据集的非常简单的例子。让我们将“伟大”定义为Hwy>35,“伟大”定义为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)
    

    如果我们设计出伟大与伟大的故事,它不会告诉我们太多:

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

    如何根据X/Y点的数量使数据点的大小更大?希望这能把事情弄清楚,但另外告诉我。

    2 回复  |  直到 9 年前
        1
  •  20
  •   Harlan    15 年前

    当然,您可以通过计算ggplot外部的数据来实现这一点,但ggplot的一个优点是,您可以在内部执行许多这些统计数据!

    使用上面的MPG示例:

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

    alt text

        2
  •  0
  •   Community CDub    8 年前

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

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

    推荐文章