在R中,我有一个像图片顶部的数据框。
是否有可能创建像图像底部那样的条形图?
答案 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" )
有关详细信息,建议您参考ggplot2 manual,尤其是有关geom_bar
和facet_wrap
的章节。