从data.frame创建条形图

ElP*_*tzo 15 plot r dataframe

在RI中有一个data.frame,就像图片顶部的那个.

是否有可能创建一个像图像底部那样的条形图?

在此输入图像描述

Gre*_*now 25

使用基本图形,您可以这样做:

mydf <- data.frame( X1=c(A=2, B=4, C=1), X2=c(3,2,NA), X3=c(4,1,NA) )
barplot(t(as.matrix(mydf)), beside=TRUE)
Run Code Online (Sandbox Code Playgroud)

使用额外的调用axis可以使标签更像问题.

  • 这应该是公认的答案 - 为什么要使用两个库来完成这么简单的任务? (2认同)

Bea*_*eld 17

假设您不想要ascii输出,这里有一个解决方案ggplot2:

# load / generate your data
mydf <- data.frame( X1 = c(2,4,1), X2 = c(3,2,NA), x3 = c(4,1,NA), row.names=c("A","B","C") )
mydf$Category  <- row.names(mydf)

# bring your data to long format as needed by ggplot
library(reshape2)
mydf.molten <- melt(mydf, value.name="Count", variable.name="Variable", na.rm=TRUE)

# plot and facet by categories
library(ggplot2)
qplot( data=mydf.molten, x = Variable, y = Count, geom="bar", stat = "identity" ) + facet_wrap( "Category" )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有关详细信息,我建议您参考ggplot2手册,尤其是关于geom_bar和的章节facet_wrap.