【问题标题】:Shading (or alpha) boxplots by number of datapoints with ggplot2 in R在 R 中使用 ggplot2 对数据点数量进行着色(或 alpha)箱线图
【发布时间】:2013-07-15 00:59:02
【问题描述】:

我有柱状数据集,我正在绘制一系列箱形图,与本示例中的设置最相似: Boxplot of table using ggplot2

require(reshape2)
ggplot(data = melt(dd), aes(x=variable, y=value)) + geom_boxplot(aes(fill=variable))

但是,就我而言,每个箱线图代表不同数量的数据点。例如,A 列可能有 8000 个数据点,B 列可能有 6000 个,C 列可能有 2500 个,D 列可能有 800 个。

为了帮助传达这一点,我想我可以对框的填充颜色设置 alpha 以反映数据点的数量。盒子越暗,用于计算箱线图所代表的统计数据的数据点就越多。

在 geom_histogram 的 ggplot2 帮助文件中,他们使用 aes(fill=..count..) 对与 bin 中的计数 # 对应的 bin 进行着色。

m <- ggplot(movies, aes(x=rating))    
m + geom_histogram(aes(fill=..count..))

(想在此处包含示例直方图的图片,但不能因为我没有足够的声望点...抱歉)

我尝试将它与我的 ggplot geom_boxplot 一起使用,但它似乎不知道 ..count.. 部分。 这是我生成箱线图的线:

ggplot(meltedData, aes(x=variable, y=value)) + geom_boxplot(aes(fill=variable), outlier.size = 1) + ylim(-4,3)

有人指点一下吗?我知道我可以将“alpha”属性添加到 geom_boxplot,但是如何根据箱线图中的数据点数将其单独应用于每个箱线图?

提前致谢。

【问题讨论】:

  • 您能否提供一个reproducible example 您要绘制的列?
  • 我不太了解整个..count.. 系统,但我认为它适用于直方图,因为stat="bin" 参数。您可能只需将count 添加到数据本身。

标签: r colors ggplot2 boxplot


【解决方案1】:

stat_boxplot 不计算计数。只需在ggplot2 之外进行:

library(plyr)
DF <- ddply(mtcars, .(cyl), transform, myalpha = length(cyl))

library(ggplot2)
ggplot(DF, aes(factor(cyl), mpg)) + 
  geom_boxplot(aes(alpha = myalpha), fill = "blue") 

【讨论】:

    【解决方案2】:

    data.table 选项:

    dd <- data.table(dd)
    dd[,Count:=.N,by=variable]
    

    【讨论】:

    • 当然。 “至少”是什么意思?
    • 我只是认为没有必要在每次需要 split-apply-combine 时都列出所有的可能性。我们真的需要一个很好的常见问题解答,提供所有可能性。我在这里选择了plyr,因为我已经在hadleyverse中了。
    【解决方案3】:

    我使用dplyr包的Roland解决方案:

    library(dplyr)
    library(ggplot2)
    
    df <- mtcars %>%
      group_by(cyl) %>%
      mutate(my_alpha = length(cyl))
    
    ggplot(df, aes(factor(cyl), mpg)) +
      geom_boxplot(aes(alpha = my_alpha), fill = 'blue')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 2019-07-26
      • 2016-12-09
      • 1970-01-01
      • 2021-12-08
      • 2020-03-29
      相关资源
      最近更新 更多