首页 > 解决方案 > 用 ggplot 和 par 在 R 中绘制两个图

问题描述

我开始学习 R。我从包中的 Iris 数据集开始datasets。要绘制 som 图,我需要使用ggplot2包。如何拆分 Plots 窗口并绘制两个图形?

我尝试使用以下代码,但只显示了一张图表。

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)

标签: rggplot2

解决方案


由于ggplot2是基于grid图形系统而不是base plot,par对调整plot没有效果ggplot2,而且ggplot2最新版本已经支持不同plot的排列,可以为每一个plot设置tag:

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包来排列它们


推荐阅读