8

抱歉,如果这个问题已经得到解答,但我似乎找不到我需要的东西。

我在 ggplot2 中生成了两个图,我使用 grid.arrange 将它们组合到同一个网格中,如下所示:

grid.arrange(p1,p2,main="Title", ncol=2)

这给了我并排的情节,如下所示:

并排的情节

(对不起,我不明白如何让这个在帖子中显示我的图像,如果你们有人可以帮助我,那就太好了!我不想通过使用链接来惹恼人们。)

如何更改此代码以使图形仍然并排但它们不会拉长对象的整个长度?我希望它们是方形的。

我知道我可以添加一个参数“高度”,但不确定这是否是我需要的,并且在这种情况下没有看到任何应用它的东西。

谢谢!

4

2 回答 2

7

您还可以使用grid.arrange的heightsand参数指定相对高度和宽度,如下所示:widths

grid.arrange(p1 , p2 , widths = unit(0.5, "npc") , heights=unit(0.5, "npc") , main="Title", ncol=2)

在此处输入图像描述

于 2013-04-22T13:35:08.487 回答
4

当您使用 ggplot2 绘制绘图时,一种方法是使用coord_fixed()获取二次图然后排列它们。您可以通过将值范围除以值范围来计算coord_fixed()where来实现此目的。ratio=yx

ratio.plot1<-abs(max(iris$Petal.Width)-min(iris$Petal.Width))/abs(max(iris$Petal.Length)-min(iris$Petal.Length))

ratio.plot2<-abs(max(iris$Sepal.Width)-min(iris$Sepal.Width))/abs(max(iris$Sepal.Length)-min(iris$Sepal.Length))

p1<-ggplot(iris,aes(Petal.Width,Petal.Length))+geom_point()+
  coord_fixed(ratio=ratio.plot1)
p2<-ggplot(iris,aes(Sepal.Width,Sepal.Length))+geom_point()+
  coord_fixed(ratio=ratio.plot2)
grid.arrange(p1,p2,main="Title",ncol=2)

在此处输入图像描述

于 2013-04-22T13:35:15.547 回答