用ggplot和par在R中绘制两个图

时间:2018-11-12 00:14:18

标签: r ggplot2

我开始研究R。我从软件包datasets中的Iris数据集开始。要绘制som图,我需要使用ggplot2包。如何拆分“图”窗口并绘制两个图形?

我尝试使用以下代码,但仅显示一个图形。

iris=datasets::iris
par(mfrow=c(2,1))
ggplot(iris, aes(x=Sepal.Length,y=Sepal.Width,color=Species))+ geom_point(size=3)
ggplot(iris, aes(x=Petal.Length,y=Petal.Width,color=Species))+ geom_point(size=3)

2 个答案:

答案 0 :(得分:3)

使用win.graph()将窗口分成两个。

由于您尚未提供数据集,因此,如果要创建并排图,请尝试下面的示例

尝试一下:

library(cowplot)

iris1 <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_boxplot() + theme_bw()

iris2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
  geom_density(alpha = 0.7) + theme_bw() +
  theme(legend.position = c(0.8, 0.8))

plot_grid(iris1, iris2, labels = "AUTO")

答案 1 :(得分:3)

由于ggplot2基于grid图形系统而不是基础绘图,因此par在调整ggplot2绘图方面无效,并且已经支持最新版本的ggplot2布置不同的地块,您可以为每个地块设置标签:

iris=datasets::iris
ggplot(iris, aes(x=Sepal.Length,y=Sepal.Width,color=Species))+ geom_point(size=3) + labs(tag = "A") -> p1
ggplot(iris, aes(x=Petal.Length,y=Petal.Width,color=Species))+ geom_point(size=3) + labs(tag = "B") -> p2
p1 + p2

要进行更复杂的安排,您可以使用patchwork软件包进行安排