gpt4 book ai didi

r - 使用 ggplot2 自定义纯素 PCA 图

转载 作者:行者123 更新时间:2023-12-01 19:20:08 25 4
gpt4 key购买 nike

我正在尝试在 ggplot2 中制作一些 vegan rda 结果的自定义绘图。我本质上是在修改方向,如 Plotting RDA (vegan) in ggplot 中所示。 ,以便我使用形状和颜色标签来传达有关样本点的一些信息。

我按如下方式设置了纯素食的主成分分析

library(vegan)
library(dplyr)
library(tibble)
library(ggplot2)
cbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#0072B2", "#D55E00", "#CC79A7", "#F0E442")
data(dune)
data(dune.env)
dune.pca <- rda(dune)
uscores <- data.frame(dune.pca$CA$u)
uscores1 <- inner_join(rownames_to_column(dune.env), rownames_to_column(data.frame(uscores)), type = "right", by = "rowname")
vscores <- data.frame(dune.pca$CA$v)

我可以制作一个简单的双图

 biplot(dune.pca)

test biplot

现在,假设我想更多地了解这些不同样本所受的管理条件。我将对它们进行颜色和形状编码,并使用 ggplot 进行绘图。

p1 <- ggplot(uscores1, aes(x = PC1, y = PC2, col = Management,
shape = Management)) +
geom_point() +
scale_color_manual(values=cbPalette) +
scale_fill_manual(values=cbPalette) +
scale_shape_manual(values = c(21:25)) +
theme_bw() +
theme(strip.text.y = element_text(angle = 0))
p1

test points

接下来,我真的很想添加一些双标箭头,向我们显示与物种丰度相对应的轴。我可以使用 ggplot 来绘制这些箭头,如下所示:

p2 <- ggplot() +  geom_text(data = vscores, aes(x = PC1, y = PC2, label = rownames(vscores)), col = 'red') +
geom_segment(data = vscores, aes(x = 0, y = 0, xend = PC1, yend = PC2), arrow=arrow(length=unit(0.2,"cm")),
alpha = 0.75, color = 'darkred')
p2

test arrows

不过,我真正想做的是将这些箭头和点放在同一个图上。目前,这是我尝试使用的代码:

p3 <- p1 + geom_text(data = vscores, aes(x = PC1, y = PC2, label = rownames(vscores)), col = 'red') +
geom_segment(data = vscores, aes(x = 0, y = 0, xend = PC1, yend = PC2), arrow=arrow(length=unit(0.2,"cm")),
alpha = 0.75, color = 'darkred')
p3

令我烦恼的是,这仅产生一个空白图(空窗口,没有错误消息)。显然我遗漏了一些东西或者错误地缩放了一些东西。关于如何最好地叠加最后两张图有什么建议吗?

最佳答案

检查来自githubggvegan包。它仍处于 0.0 版本,目前尚未积极开发,但如果你说

library(ggvegan)
autoplot(dune.pca) # your result object

您将获得此图表,您可以通过通常的 ggplot2 方式自定义具有各种美学效果的图表。

enter image description here

关于r - 使用 ggplot2 自定义纯素 PCA 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46288467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com