ggplot2 | geom_bar 和位置=“身份”

wat*_*wer 3 r ggplot2

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

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

ggplot(diamonds, aes(color, fill = cut)) +
geom_bar()
Run Code Online (Sandbox Code Playgroud)

这会根据颜色绘制频率(y 轴)并根据“剪切”进行填充。我对此很擅长。

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

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

有人可以解释一下为什么第二个图有点不同(即两个图中条形图的高度不同;配色方案也发生了变化——我本来期望条形图是红色的,因为我明确设置了 color = "红色”,但条形具有渐变配色方案,并且它们具有“红色”边框。

在绘制此图时,我使用公开可用的ggplot2库和diamond附带的数据集包。

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

小智 5

正如 @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)
Run Code Online (Sandbox Code Playgroud)

args显示带有默认值的任何函数的参数,正如您在此处看到的,position参数的默认值是“stack”,因此在您的第一个示例中,条形图是堆叠的。如果您想指定“填充”颜色,则需要一个特殊的额外参数:比例(如果您fill=...在geom_bar调用中尝试,它会覆盖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"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述