从data.frame创建条形图

时间:2013-05-17 20:28:58

标签: r plot dataframe

在R中,我有一个像图片顶部的数据框。

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

enter image description here

2 个答案:

答案 0 :(得分:23)

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

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)

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

答案 1 :(得分: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" )

enter image description here

有关详细信息,建议您参考ggplot2 manual,尤其是有关geom_barfacet_wrap的章节。