我有几个数据,我需要在这样的图片中紧凑地绘制它们:
我已经尝试了par()
layout()
和ggplot()
,但是到目前为止,每个地块都显示了图表。
我需要他们非常接近,好像他们在同一个地图上有不同的y(例如plot1 y=0, plot2 y=1, plot3 y=3
等等)。
有人可以帮助我吗?
答案 0 :(得分:1)
也可以使用布局获取,但也许更简单的方法是以合适的方式设置图形参数。
函数par()
让我们使用参数mfrow
指定单个图中的面板数。它采用两个数字的向量,指定数字子图行和列。例如,c(2,1)
将创建两行图形,但只有一列。这就是你的例子中的内容。您可以将图形行数更改为要垂直绘制的子图形数。
此外,可以使用参数mar
设置每个子图周围的边距。边距按照1. bottom,2。left,3。top。和4. right的顺序指定。使底部和顶部边距更小会使您的子图更接近。
在R中,这可能类似于以下内容:
# Simulate some random data
a<-runif(10000)
b<-runif(10000)
# Open a new plot windows
# width: 7 inches, height: 2 inches
x11(width=7, height=1)
# Specify the number of sub-figures
# Specify the margins (top and bottom are 0.1, left and right are 2)
# Needs some experimenting with to get these right
par(mfrow=c(2,1), mar=c(0.1,2,0.1,2))
# Plot the figures
barplot(a)
barplot(b)
结果图应大致类似于:
答案 1 :(得分:0)
以下是使用ggplot
的{{1}}版本:
facet_grid