您可以使用 facet_wrap 实现你所描述的:
facet_wrap
yellowmellow <- structure(list(X = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("Forest_CE", "Forest_OE"), class = "factor"), Product = structure(c(5L, 5L, 6L, 6L, 3L, 3L, 4L, 4L, 1L, 1L, 2L, 2L), .Label = c("CCI 2000", "CCI 2005", "GLC-SHARE2000", "GLC-SHARE2005", "Modis 2000", "Modis 2005"), class = "factor"), Agriculture = c(45.42827657, 36.98156682, 48.19181349, 55.41838134, 41.6579589, 29.74910394, 42.88911495, 7.112253642, 38.86168911, 86.76103247, 44.08410549, 88.54166667), Built.up = c(0.990712074, 0.115207373, 0.702079746, 0.137174211, 0.104493208, 0, 0.996948118, 0, 1.591187271, 0, 1.069137562, 0), Mining = c(0.557275542, 0, 0.132467877, 0, 0.870776733, 0, 0.22380468, 0, 1.407588739, 0, 0.249465431, 0), Other = c(52.73477812, 51.38248848, 50.73519671, 44.17009602, 56.94879833, 70.25089606, 55.50356053, 77.97772065, 57.71113831, 11.07410491, 54.16963649, 7.899305556), Water = c(0.288957688, 11.52073733, 0.238442178, 0.274348422, 0.417972832, 0, 0.386571719, 14.91002571, 0.428396573, 2.164862614, 0.427655025, 3.559027778 )), .Names = c("X", "Product", "Agriculture", "Built.up", "Mining", "Other", "Water"), class = "data.frame", row.names = c(NA, -12L)) # using reshape 2, we change the data frame to long format mean.long = melt(yellowmellow, measure.vars = 3:7, variable.name = "Land", value.name = "Percentage") ggplot(mean.long, aes(x=Land, y=Percentage, fill=factor(X))) + theme_bw() + facet_wrap(~Product)+ geom_bar(position=position_dodge(.9)) + # this line is not needed. Only included as a fix for legend/key random line geom_bar(position=position_dodge(.9), stat="identity", colour="black", legend = FALSE) + scale_fill_grey(start=.4)
我猜这就是你要找的东西。我基本上将您的数据放入数据帧(yellowmellow)并使用它将其转换为长格式数据 melt 为了使用它 ggplot 和 facet_wrap 。以下是上述代码的输出:
melt
ggplot
编辑:或者你可以添加单行的所有图表 nrow=1 到了 facet_wrap :
nrow=1
ggplot(mean.long, aes(x=Land, y=Percentage, fill=factor(X))) + theme_bw() + facet_wrap(~Product, nrow=1)+ geom_bar(position=position_dodge(.9)) + # this line is not needed. Only included as a fix for legend/key random line geom_bar(position=position_dodge(.9), stat="identity", colour="black", legend = FALSE) + scale_fill_grey(start=.4)
看起来像这样:
我使用以下尺寸导出此图像以避免重叠的x轴标签:2000 * 1500。
您可以使用不同的导出大小和字体大小来查找所需内容。