问题描述
我想对齐第 1 行的垂直绘图和第 2 行的绘图。不管我多么努力,但它并没有让我对齐。
有什么想法吗?
type numbers = [50,100,200,300,400,500];
interface INumbers {
numbersType:numbers;
}
解决方法
此处关于 ggplot
的术语是 绘图 对齐得很好 - 面板 未对齐。 “面板”表示 x 轴和 y 轴之间的区域,“绘图”被认为是面板占据的整个区域 + 轴刻度、轴文本和轴标题。
为什么这很重要?好吧,plot_grid()
对齐所有绘图,但不对齐面板。由于 p1
的 y 轴文本比 p3
的 y 轴文本更长,因此 p1
中面板左侧的区域也更宽。当您将 p1
和 p3
的左侧对齐时,表示 p3
的面板在 p1
的左侧。
解决这个问题的简单方法是在 p3
上添加一点边距。通过使用 theme(plot.margin)
,我们可以在 p3
的左侧添加一些空间,以便 p3
中面板左侧的区域与 p1
中的区域大致相似。不幸的是,除了反复试验之外,以任何其他方式做到这一点并不是很简单。您必须添加一些边距并再次绘制以查看它是太多还是太少。最后,结果虽然有效。同样,我在 p3
的右侧添加了一些边距,以使该面板的右侧部分与 p2
面板的右侧对齐。
要修复,p3
的代码现在如下所示:
p3 <- ggplot(mtcars,aes(wt,mpg)) +
geom_point() +
theme(plot.margin = margin(l=44,t=0,b=0,r=6,'pt'))