0

我有一个关于使用 ggplot2 在 R 中创建堆叠条形图的问题。我想要创建的是一个堆叠条形图,其中每个条形图都放置在另一个条形图的“顶部”。

x = c(100,200,400,600,800,1000,1250,1500)
y1 = c(1,2,3,4,5,6,7,8)
y2 = c(8,7,6,5,4,3,2,1)
data <- data.frame(x,y1,y2)
ggplot(data, aes(x, y1,label=x)) + 
  geom_bar(stat="identity", fill="blue", position="stack") +     
  geom_bar(stat="identity",aes(x, y2), fill="orange", position="stack")

我现在得到的是堆叠条。但是对于 x = 100,我从 0 - 1 得到一个小节,从 0 - 8 得到一个小节。但我想要从 0 - 1 得到一个小节,从 1 - 9 得到一个小节。

您知道如何解决这个问题(无需手动汇总输入)吗?

谢谢你的帮助!

4

2 回答 2

2

尝试:

ggplot(melt(data, id='x')) + geom_bar(aes(x=x, y=value, fill=variable), stat='identity')

在此处输入图像描述

于 2014-10-13T15:31:10.243 回答
0

怎么样:

df <- data.frame(x = c(x,x), y = c(y1, y2), grp = factor(rep(c("Grp 1", "Grp 2"), each = 8)))
ggplot(df, aes(x, y, fill = grp)) + geom_bar(stat = "identity", position="stack")

scale_fill_manual如果要调整颜色,请使用。

于 2014-10-13T15:27:28.457 回答