首页 文章

ggplot2 | geom_bar和position =“identity”

提问于
浏览
2

我是一个绝对的初学者,我最近开始使用优秀的包ggplot . 我有一个关于在条形图中使用position = "identity"的问题 . 我通过互联网搜索并发现:http://docs.ggplot2.org/current/geom_tile.html但是,它们与geom_bar()无关

A)第一张图:(效果很好)

ggplot(diamonds, aes(color, fill = cut)) +
geom_bar()

这绘制了基于“切割”的频率(y轴)颜色和填充 . 我很擅长这个 .

B)现在,在第二张图中,我不确定发生了什么:

ggplot(diamonds, aes(color, fill = cut)) +
geom_bar(position = "identity", alpha = 1 / 2, colour = "red")

有人可以解释为什么第二个图形有点不同(即条形图的高度在两个图形中是不同的;颜色方案也发生了变化 - 我希望条形图是红色的,因为我明确地设置了颜色=“红色“但酒吧有渐变配色方案,它们有一个”红色“边框 .

在绘制它时,我使用随附的公开可用的 ggplot2 库和 diamond dataset包 .

我是初学者,所以如果我的问题听起来太基础,我很抱歉 .

1 回答

  • 2

    正如@Richard Telford所说, position="identity" 与条形重叠,默认选项为 position="stack" ,您可以看到:

    args(geom_bar)
    function (mapping = NULL, data = NULL, stat = "count", position = "stack", 
    ..., width = NULL, binwidth = NULL, na.rm = FALSE, show.legend = NA, 
    inherit.aes = TRUE)
    

    args 显示任何函数的参数,使用默认值,如此处所示, position 参数的默认值为"stack",因此在您的第一个例子中,条形图是堆叠的 . 如果你想指定"filling"颜色,你需要一个特殊的额外参数:一个比例(如果你在 geom_bar 调用中尝试 fill=... 它会覆盖 fill=cut ggplot 调用) . 这里有一个丑陋的颜色和黑色边框的例子:

    ggplot(diamonds, aes(color, fill = cut)) +
    geom_bar(position = "stack", color="black") +
    scale_fill_manual(values=c("red", "blue", "green", "yellow", "gray70"))
    

    enter image description here

相关问题