使用ggplot为数据框中的每一行创建堆叠条形图的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ggplot为数据框中的每一行创建堆叠条形图的功能相关的知识,希望对你有一定的参考价值。

library(ggplot2)
library(reshape)
df1<-data.frame(id=c("a","b","c","d"),
                var1=c(2,4,4,5),
                var2=c(5,6,2,6),
                var3=c(5,3,2,1))
df1.m <- melt(df1,id.vars = "id") 
ggplot(df1.m, aes(x = id, y = value,fill=variable)) +
  geom_bar(stat='identity')+coord_flip()

#edited attempt
my.func<-function(x){
  xx<-melt(x, id.vars="id")
  ggplot(xx, aes(x = id, y = value,fill=variable)) +
    geom_bar(stat='identity')+coord_flip()
}
results<-apply(df1, 1,my.func)

我有上面的数据帧。我想要一个函数来为每个id单独创建一个堆叠的条形图,这样我最终会有4个堆叠的条形图:分别用于a,b,c和d。我很困惑如何做到这一点。谢谢编辑:4个条形图最终将在他们自己的窗口中单独绘制。所以我知道至少涉及一个用户定义的功能。或者至少我想我知道。

答案

你快到了。按变量填写

  ggplot(df1.m, aes(x=id, y=value, fill=variable)) + 
  geom_bar(stat="identity") +coord_flip()

enter image description here

使用facet_wrap()

 ggplot(df1.m, aes(x=id, y=value, fill=variable)) + 
      geom_bar(stat="identity") + facet_wrap(~id)

以上是关于使用ggplot为数据框中的每一行创建堆叠条形图的功能的主要内容,如果未能解决你的问题,请参考以下文章

带有组和构面的堆叠 ggplot 条形图的百分比标签

R语言ggplot2可视化:计算dataframe中每个数据列缺失值的个数使用堆叠的条形图(Stacked Barplot)可视化每个数据列的缺失值的情况(自定义堆叠条形图的形式)

R语言ggplot2可视化:ggplot2可视化水平堆叠条形图并且在每个堆叠条形图的内部居中添加百分比文本标签信息

R语言ggplot2可视化堆叠条形图(stacked bar plot)并且在每个条形图的顶端使用数值标签表示整个条形的加和值(sum value above the stacked bar)

R语言ggplot2可视化堆叠的条形图(stacked bar plot)并在每一个条形图的的中间添加对应的数值值标签定位在geom_col堆叠的条形图中的每个条形段的中间

ggplot2:3路交互堆积条形图的分组条形图