我想在 1x3 布局中绘制三个图表。只有第一张图需要有垂直轴标签,但我希望所有三个绘图区域的大小完全相同。如果没有或所有图表都有轴标签,这将没有问题。但是,当一个有轴标签而另外两个没有轴标签时,如何使所有三个图形的大小相同?我正在尝试在基本图形中执行此操作,因为这是我最了解的,但如果它们提供更好的方法来解决我的问题,我会很乐意使用 grid 或 ggplot2。
这是一些假数据、我的绘图代码和绘图本身:
# Fake Data
data = structure(list(y1 = 1:5, y2 = c(1.2, 2.4, 3.6, 4.8, 6), y3 = c(1.44,
2.88, 4.32, 5.76, 7.2)), .Names = c("y1", "y2", "y3"),
row.names = c("I needed 12 units for financial aid",
"I couldn't find any other open classes",
"I might be adding a major or minor",
"The class seemed interesting", "The class fit into my schedule"
), class = "data.frame")
# Plotting code
par(mar=c(5,15,4,1))
par(mfrow=c(1,3))
barplot(data$y1,names.arg=row.names(data), horiz=TRUE,las=1, +
xlim=c(0,8), main="Group 1")
par(mar=c(5,1,4,1))
barplot(data$y2,names.arg=row.names(data), horiz=TRUE,las=1, +
axisnames=FALSE, xlim=c(0,8), main="Group 2")
barplot(data$y3,names.arg=row.names(data), horiz=TRUE,las=1, +
axisnames=FALSE, xlim=c(0,8), main="Group 3")
# Reset plot options back to defaults
par(mfrow=c(1,1)
par(mar=c(5,4,4,2)+0.1)
[更新:我选择了最直接回答我的问题的答案,它是在基本图形中,但我建议也查看其他解决方案,因为它们显示了如何在lattice
和中做同样的事情ggplot2
。]