寻找一种绘制成对散点图矩阵的方法,其中变量分为两组
Looking for a way to plot a pairwise scatterplot matrix where variables are in two groups
寻找一种方法来绘制成对散点图矩阵,其中变量位于两组中,即图需要限制为组之间的对,不包括组内对。例如,基础 pairs()
产生这个
pairs(iris[1:4])
而我正在寻找,例如,仅将萼片变量与花瓣变量相关联,并且对萼片(或花瓣)长宽相关性不感兴趣。因此,我需要一个 2x2 矩阵而不是 4x4 矩阵。
解决方案看起来像这样
pairs()
似乎支持公式参数,但 pairs(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width, data=iris)
看起来不对。它的方向正确,给出了一个 3x3 矩阵,但由于某种原因,两个萼片变量被分组了。
最好在ggplot2
或GGally::ggpairs()
中寻找解决方案。
这是带有 tidyr 预处理的普通 ggplot 方法。
首先,我们将重塑数据,使宽度和长度变量具有相同的列。
library(ggplot2)
df <- tidyr::pivot_longer(iris, c(Petal.Length, Petal.Width),
names_to = "petal_metric", values_to = "petal_value")
df <- tidyr::pivot_longer(df, c(Sepal.Length, Sepal.Width),
names_to = "sepal_metric", values_to = "sepal_value")
接下来,我们可以简单地对 petal/sepal 指标进行分面。
p <- ggplot(df, aes(sepal_value, petal_value, colour = Species)) +
geom_point()
p + facet_grid(petal_metric ~ sepal_metric)
我们可以更好地装饰绘图,让条带用作轴标题。
p + facet_grid(petal_metric ~ sepal_metric, switch = "both") +
theme(strip.placement = "outside",
strip.background = element_blank(),
axis.title = element_blank())
由 reprex package (v2.0.1)
创建于 2022-01-11
寻找一种方法来绘制成对散点图矩阵,其中变量位于两组中,即图需要限制为组之间的对,不包括组内对。例如,基础 pairs()
产生这个
pairs(iris[1:4])
而我正在寻找,例如,仅将萼片变量与花瓣变量相关联,并且对萼片(或花瓣)长宽相关性不感兴趣。因此,我需要一个 2x2 矩阵而不是 4x4 矩阵。
解决方案看起来像这样
pairs()
似乎支持公式参数,但 pairs(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width, data=iris)
看起来不对。它的方向正确,给出了一个 3x3 矩阵,但由于某种原因,两个萼片变量被分组了。
最好在ggplot2
或GGally::ggpairs()
中寻找解决方案。
这是带有 tidyr 预处理的普通 ggplot 方法。
首先,我们将重塑数据,使宽度和长度变量具有相同的列。
library(ggplot2)
df <- tidyr::pivot_longer(iris, c(Petal.Length, Petal.Width),
names_to = "petal_metric", values_to = "petal_value")
df <- tidyr::pivot_longer(df, c(Sepal.Length, Sepal.Width),
names_to = "sepal_metric", values_to = "sepal_value")
接下来,我们可以简单地对 petal/sepal 指标进行分面。
p <- ggplot(df, aes(sepal_value, petal_value, colour = Species)) +
geom_point()
p + facet_grid(petal_metric ~ sepal_metric)
我们可以更好地装饰绘图,让条带用作轴标题。
p + facet_grid(petal_metric ~ sepal_metric, switch = "both") +
theme(strip.placement = "outside",
strip.background = element_blank(),
axis.title = element_blank())
由 reprex package (v2.0.1)
创建于 2022-01-11