首页 文章

R中的堆积条形图与ggplot2

提问于
浏览
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之间的一个 .

您是否知道如何解决此问题(不手动汇总输入)?

谢谢你的帮助!

2 回答

  • 2

    尝试:

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

    enter image description here

  • 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 .

相关问题