0

我的情节看起来像这样

在此处输入图像描述

这是我尝试过的。我制作了单独的散点图并将它们与grid.arrange.

data(methylmercurydata) 
p1 <- ggplot(data=methylmercurydata,aes(x=MeHg, y=logTHg)) + geom_point()
p2 <- ggplot(data=methylmercurydata,aes(x=MeHg, y=OM)) + geom_point()
p3 <- ggplot(data=methylmercurydata,aes(x=MeHg, y=FeRB)) + geom_point()
grid.arrange(p1,p2,p3)
4

2 回答 2

1

我不清楚你所说的“散点图矩阵”是什么意思,但如果你想制作一个相关矩阵,你可以使用 ggforce (例如,根据https://ihaddadenfodil.com/post/it-sa-bird-it-sa -plane-it-sa-ggforce-function/ ):

library(tidyverse)
library(ggforce)
library(palmerpenguins)

ggplot(penguins, aes(col = sex)) +
  geom_autopoint(na.rm = TRUE) +
  facet_matrix(rows = vars(bill_length_mm:body_mass_g),
               switch = "x")

示例图

于 2020-09-23T05:56:29.157 回答
1

最简单的方法可能是dplyr::facet_wrap()在创建更长的表之后使用。

就像是:

library(tidyverse)

methylmercurydata %>%
    pivot_longer(cols = c(logTHg, OM, FeRB), names_to = 'metric') %>%
    ggplot() +
    geom_point(aes(MeHG, value)) +
    facet_wrap(~metric)

编辑:r2evans提出了一个很好的观点;如果您需要跨 y 的单独比例,您可以scales = 'free_y'facet_wrap调用中使用。同样,scales = 'free_x'将提供不同的 x 轴,并scales = 'free'为每个轴提供不同的比例。重新创建上述绘图时要考虑的另一件事是指定ncol参数,在这种情况下ncol = 1

于 2020-09-23T03:29:39.943 回答