如何并排显示两个心理包图

How to show Two Graphs of psych package side by side

下面的代码应该并排显示两个相同的图。但是,它在第​​一个图表上绘制第二个图表。

library("psych")
par(mfrow = c(1, 2))
corPlot(mtcars)
corPlot(mtcars)

这是最小的工作示例。实际图表不同。

编辑:如答案所示,以下作品

par(mfrow = c(1, 2))
corPlot(mtcars, show.legend = FALSE, keep.par = FALSE)
corPlot(mtcars, show.legend = FALSE, keep.par = FALSE)

在 corPlot 的帮助页面中有一个实际的工作示例,两个图绘​​制了几个图表,这里它适用于您的数据:

op <- par(mfrow=c(1,2))
corPlot(mtcars,show.legend=F,keep.par=FALSE,upper=T)
corPlot(mtcars,show.legend=F,keep.par=FALSE,upper=T)
par(op)

请注意,当您更改 show.legend=T 时,这将不起作用。

或者,只要切换起来很容易,您应该选择使用 ggplot2 而不是其他绘图系统,因为它更成熟、更健壮。这是一个使用 ggplot2 居中包 ggcorrplotcowplot.

的解决方案
library(ggplot2)
library(ggcorrplot)
library(cowplot)

corr <- round(cor(mtcars), 1)

p1 <- ggcorrplot::ggcorrplot(corr, lab = TRUE)
p2 <- ggcorrplot::ggcorrplot(corr, lab = TRUE)

cowplot::plot_grid(
  p1, p2,
  labels = "AUTO", ncol = 1
)

reprex package (v2.0.1)

创建于 2022-01-14

如果您优先使用 psych 包,您可以查看 corrplot 库。可以找到文档 here.

代码将如下所示:

library(corrplot)

m <- cor(mtcars)
n <- cor(mtcars)
par(mfrow = c(1, 2))

corrplot(m)
corrplot(n)

输出将如下所示: