迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 R 中自定义 PCA Biplot

作者:迹忆客 最近更新:2023/03/21 浏览次数:

我们可以使用基本 R 的 prcomp()biplot() 函数生成 PCA 双标图。在本文中,我们将首先生成一个双标图,然后通过多种方式对其进行自定义。

PCA 和 R 中的 Biplot

为了开始我们对 PCA 双标图的探索,我们将创建一些样本数据,构建 PCA 模型对象,并绘制双标图。

示例代码:

# Vectors.
set.seed(24)
d1 = rnorm(14, mean = 5, sd=2)
set.seed(350)
d2 = d1 + rnorm(14, mean=1, sd=1)
set.seed(46)
d3 = rnorm(14, mean=15, sd=10)
set.seed(570)
d4 = 20 + rnorm(14, mean=2, sd=2)
# Data frame from the vectors.
da = data.frame(d1, d2, d3, d4)

# PCA model using the prcomp() function.
pca_mod = prcomp(da, scale = TRUE)

# biplot() plots the first two principal components.
biplot(pca_mod, scale = 0)

默认 PCA 双标图如下所示。

输出图像:

默认双标图

我们可以通过多种方式自定义默认双标图,如下所示。

R 中 PCA Biplot 所需的自定义

使用的值特定于下面提到的自定义中的此示例数据。在观察默认图并确定需要哪些自定义之后,我们必须为其他数据更改这些值。

将数据标签更改为标记

数据框的行标签用作 PCA 分数数据点的标签。如果它们占用过多的区域并使图形看起来很乱,我们可以将它们替换为诸如句号或 x 之类的字符。

我们必须传递一个长度与数据框中的行数相同的向量。这是使用参数 xlabs 完成的,如下所示:xlabs = rep("x", 14)

更改分数和载荷数据点的颜色

要更改 PCA 分数和负载数据点的颜色,我们需要将具有两种颜色的向量传递给 biplot 函数,如下所示:col = c("red", "blue")

载荷数据点的箭头和标签将具有相同的颜色。

更改轴的边界

我们只能使用 xlimylim 参数来更改 PCA 分数轴的限制。PCA 载荷轴的限制不能更改。

更改坐标区范围具有放大绘图的效果。

这样做如下:xlim=c(-2.5, 2.5), ylim=c(-2, 2)

更改数据标签的大小

cex 参数可以更改绘图文本和符号的放大倍数。PCA 分数和载荷的比例在 2 元素向量中给出:cex = c(0.5, 0.8)

更改加载轴的缩放比例

虽然我们不能直接更改加载轴的限制,但我们可以使用 expand 参数缩放它们,如下所示:expand = 1.2。这会导致箭头更长或更短,具体取决于用于缩放的数字。

为轴添加线

我们可以添加线条来明确显示轴。x 轴添加代码 abline(h=0, col="green", lty=4),y 轴添加 abline(v=0, col="green", lty=4)

颜色 col 和线型 lty 可以修改。

R 中的自定义 Biplot

通过应用有意义的自定义,我们可以获得更适合我们需求的双标图。

代码后面的图像是在将上述所有自定义项应用于我们的默认双标图后获得的。还添加了各种标签。

示例代码:

# Biplot with customizations.
biplot(pca_mod, scale = 0,
       col=c("red", "blue"),
       xlabs = rep("x",14),
       xlim=c(-2.5, 2.5), ylim=c(-2, 2),
       cex=c(0.7,0.8),
       expand = 1.2,
       main = "My Customized PCA biplot",
       sub = "More changes are possible",
       xlab = "Prin. Comp. 1",
       ylab = "Prin. Comp. 2")
# The following two lines get added to the plot.
abline(h=0, col="green", lty=4)
abline(v=0, col="green", lty=4)

输出图像:

定制的双标图

结论

我们查看了一些最有用的基本 R 的双标图自定义。可以使用可以传递给 biplot() 的图形参数进行更多自定义。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便