我要绘制几个不同的类别。这些是不同的类别,每个类别都有自己的标签集,但是在文档中将它们分组在一起是有意义的。下面给出了一些简单的堆叠条形图示例:df <- data.frame(x=c("a", "b", "c"), y=c("happy", "sad", "ambivalent about life"))ggplot(df, aes(x=factor(0), fill=x)) + geom_bar()ggplot(df, aes(x=factor(0), fill=y)) + geom_bar()问题在于,使用不同的标签,图例具有不同的宽度,这意味着绘图具有不同的宽度,如果我制作表格或\subfigure元素,结果看起来会有些愚蠢。我怎样才能解决这个问题?有没有一种方法可以显式设置绘图或图例的宽度(绝对或相对)?
查看完整描述
TA贡献1810条经验 获得超4个赞
该cowplot软件包还具有align_plots用于此目的的功能(输出未显示),
both2 <- align_plots(p1, p2, align="hv", axis="tblr")
p1x <- ggdraw(both2[[1]])
p2x <- ggdraw(both2[[2]])
save_plot("cow1.png", p1x)
save_plot("cow2.png", p2x)
并将plot_grid图保存到同一文件中。
library(cowplot)
both <- plot_grid(p1, p2, ncol=1, labels = c("A", "B"), align = "v")
save_plot("cow.png", both)
查看完整回答
TA贡献2051条经验 获得超10个赞
Arun建议将图例移至顶部或底部:
ggplot(df, aes(x=factor(0), fill=x)) + geom_bar() + theme(legend.position = "bottom")
ggplot(df, aes(x=factor(0), fill=y)) + geom_bar() + theme(legend.position = "bottom")
在此处输入图片说明 在此处输入图片说明
现在,这些图具有所需的相同宽度。此外,在两种情况下,绘图区域的大小均相等。
如果有更多因素或更长的标签,则可能需要使用图例,例如,在两行或更多行中显示图例。theme()并guide_legend()有几个参数可控制图例在ggplot2。
查看完整回答