同一图中的多个图

时间:2014-02-21 17:02:54

标签: r plot

我有几个数据,我需要在这样的图片中紧凑地绘制它们: enter image description here

我已经尝试了par() layout()ggplot(),但是到目前为止,每个地块都显示了图表。 我需要他们非常接近,好像他们在同一个地图上有不同的y(例如plot1 y=0, plot2 y=1, plot3 y=3等等)。

有人可以帮助我吗?

2 个答案:

答案 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)

结果图应大致类似于:

Resulting image

答案 1 :(得分:0)

以下是使用ggplot的{​​{1}}版本:

facet_grid

enter image description here