📅  最后修改于: 2023-12-03 15:04:45.145000             🧑  作者: Mango
边际图是一种将两个变量的分布及其关系表示在同一图形中的方法。在 R 语言中,可以使用 ggplot2 包创建边际图。本文将介绍如何使用 ggplot2 创建边际图,以及如何定制颜色、填充和主题等参数。
我们需要先准备一些数据,作为创建边际图的数据源。在这个例子中,我们将使用 R 内置的 iris 数据集。
library(ggplot2)
head(iris)
要创建一个基本的边际图,我们可以使用 ggplot2 的 geom_density2d 函数和 geom_density 函数分别绘制 2D 核密度估计曲线和单变量密度图。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_density2d() +
geom_density(aes(x = Sepal.Length), alpha = 0.3, fill = "blue") +
geom_density(aes(y = Sepal.Width), alpha = 0.3, fill = "green") +
labs(title = "Iris Sepal Length vs. Width",
x = "Sepal Length (cm)",
y = "Sepal Width (cm)")
我们可以看到,上面的代码绘制了一张包含 iris 数据集中 Sepal.Length 和 Sepal.Width 两个变量分布及其关系的边际图。
除了密度曲线之外,我们还可以使用 geom_histogram 函数绘制边际直方图。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_density2d() +
geom_histogram(aes(x = Sepal.Length), alpha = 0.3, fill = "blue") +
geom_histogram(aes(y = Sepal.Width), alpha = 0.3, fill = "green") +
labs(title = "Iris Sepal Length vs. Width",
x = "Sepal Length (cm)",
y = "Sepal Width (cm)")
我们可以使用 scale_fill_manual 函数和 scale_color_manual 函数定制边际图的填充和颜色。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_density2d() +
geom_density(aes(x = Sepal.Length), alpha = 0.3, fill = "blue") +
geom_density(aes(y = Sepal.Width), alpha = 0.3, fill = "green") +
labs(title = "Iris Sepal Length vs. Width",
x = "Sepal Length (cm)",
y = "Sepal Width (cm)") +
scale_fill_manual(values = c("blue", "green")) +
scale_color_manual(values = c("blue", "green"))
最后,我们可以使用 theme_minimal 函数定制边际图的主题。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_density2d() +
geom_density(aes(x = Sepal.Length), alpha = 0.3, fill = "blue") +
geom_density(aes(y = Sepal.Width), alpha = 0.3, fill = "green") +
labs(title = "Iris Sepal Length vs. Width",
x = "Sepal Length (cm)",
y = "Sepal Width (cm)") +
scale_fill_manual(values = c("blue", "green")) +
scale_color_manual(values = c("blue", "green")) +
theme_minimal()