Error: Aesthetics must be either length 1 or the same as the data (9): size
Error: Aesthetics must be either length 1 or the same as the data (9): size
我正在尝试使用 qiime2R 和 ggplot2 绘制我的 PCOA,因为我发现 2D UniFrac 图比 3D 中的 Emperor 提供的信息更多。所以我遵循了 qiime2R 教程,但是我在添加不同的美学方面遇到了麻烦,我看过其他 post 但我不太明白这个问题。这是我的代码。
qiime2 论坛的人帮不了我,也许你可以。
library(ggplot2)
library(qiime2R)
metadata<-read_q2metadata("Metadata.tsv")
uwunifrac<-read_qza("weighted_unifrac_pcoa_results.qza")
shannon<-read_qza("shannon_vector.qza")$data %>% rownames_to_column("SampleID")
uwunifrac$data$Vectors %>%
select(SampleID, PC1, PC2) %>%
left_join(metadata) %>%
left_join(shannon) %>%
ggplot(aes(x=PC1, y=PC2, color=`Name`, shape=`Origen`, size=shannon)) +
geom_point(alpha=0.5) +#alpha controls transparency and helps when points are overlapping
theme_q2r() +
scale_shape_manual(values=c(16,1), name="Name") +
scale_size_continuous(name="Shannon Diversity") +
scale_color_discrete(name="Name")
ggsave("PCoA.pdf", height=4, width=5, device="pdf")
当我尝试编译时收到以下错误消息:
Error: Aesthetics must be either length 1 or the same as the data (9): size
但是如果我只包含一种美学,例如:
ggplot(aes(x=PC1, y=PC2, color=Name))
编译通过。我想知道是否有一种方法可以像我最初尝试的那样包含所有美学。
下面是我的数据
> uwunifrac$data$Vectors %>%
+ select(SampleID, PC1, PC2) %>%
+ left_join(metadata) %>%
+ left_join(shannon) Joining, by = "SampleID" Joining, by = "SampleID"
SampleID PC1 PC2 Name Origen shannon_entropy
1 D1_16S 0.18825645 -0.047168594 Lixiviado de mina (2) Minas de Riotinto 6.791300
2 D2_16S 0.09366309 0.106100155 Corta Atalaya (3) Minas de Riotinto 4.375214
3 D3_16S 0.08844727 0.003118801 Rio Tinto (4) Minas de Riotinto 5.090431
4 D4_16S -0.10670870 0.494599196 Odiel 3,4% Rio Odiel 6.285716
5 D5_16S -0.51231492 0.021180538 Odiel 7,7% Rio Odiel 5.881951
6 D6_16S -0.30245182 -0.339569170 Odiel 15% Rio Odiel 5.440700
7 D7_16S 0.21368026 -0.041278615 Pool Balsas de fosfoyesos 7.715696
8 D8_16S 0.20073878 -0.072788430 Piezometro 1 Balsas de fosfoyesos 7.547468
9 D9_16S 0.13668959 -0.124193881 Piezometro 2 Balsas de fosfoyesos 7.671805
所以现在我意识到,aes(
中的变量名称应该是 shannon_entropy
而不是 shannon
。更改我收到新的错误消息
Error: Insufficient values in manual scale. 3 needed but only 2 provided.
提前致谢,何塞。
对于您更新的问题:
您为 Origen 提供了两个形状值(16 和 1),但 Origen 有 3 个值(Minas ...、Rio ...和 Balsas ...)。您必须为每个 Origen 值提供一个形状值。
我正在尝试使用 qiime2R 和 ggplot2 绘制我的 PCOA,因为我发现 2D UniFrac 图比 3D 中的 Emperor 提供的信息更多。所以我遵循了 qiime2R 教程,但是我在添加不同的美学方面遇到了麻烦,我看过其他 post 但我不太明白这个问题。这是我的代码。
qiime2 论坛的人帮不了我,也许你可以。
library(ggplot2)
library(qiime2R)
metadata<-read_q2metadata("Metadata.tsv")
uwunifrac<-read_qza("weighted_unifrac_pcoa_results.qza")
shannon<-read_qza("shannon_vector.qza")$data %>% rownames_to_column("SampleID")
uwunifrac$data$Vectors %>%
select(SampleID, PC1, PC2) %>%
left_join(metadata) %>%
left_join(shannon) %>%
ggplot(aes(x=PC1, y=PC2, color=`Name`, shape=`Origen`, size=shannon)) +
geom_point(alpha=0.5) +#alpha controls transparency and helps when points are overlapping
theme_q2r() +
scale_shape_manual(values=c(16,1), name="Name") +
scale_size_continuous(name="Shannon Diversity") +
scale_color_discrete(name="Name")
ggsave("PCoA.pdf", height=4, width=5, device="pdf")
当我尝试编译时收到以下错误消息:
Error: Aesthetics must be either length 1 or the same as the data (9): size
但是如果我只包含一种美学,例如:
ggplot(aes(x=PC1, y=PC2, color=Name))
编译通过。我想知道是否有一种方法可以像我最初尝试的那样包含所有美学。
下面是我的数据
> uwunifrac$data$Vectors %>%
+ select(SampleID, PC1, PC2) %>%
+ left_join(metadata) %>%
+ left_join(shannon) Joining, by = "SampleID" Joining, by = "SampleID"
SampleID PC1 PC2 Name Origen shannon_entropy
1 D1_16S 0.18825645 -0.047168594 Lixiviado de mina (2) Minas de Riotinto 6.791300
2 D2_16S 0.09366309 0.106100155 Corta Atalaya (3) Minas de Riotinto 4.375214
3 D3_16S 0.08844727 0.003118801 Rio Tinto (4) Minas de Riotinto 5.090431
4 D4_16S -0.10670870 0.494599196 Odiel 3,4% Rio Odiel 6.285716
5 D5_16S -0.51231492 0.021180538 Odiel 7,7% Rio Odiel 5.881951
6 D6_16S -0.30245182 -0.339569170 Odiel 15% Rio Odiel 5.440700
7 D7_16S 0.21368026 -0.041278615 Pool Balsas de fosfoyesos 7.715696
8 D8_16S 0.20073878 -0.072788430 Piezometro 1 Balsas de fosfoyesos 7.547468
9 D9_16S 0.13668959 -0.124193881 Piezometro 2 Balsas de fosfoyesos 7.671805
所以现在我意识到,aes(
中的变量名称应该是 shannon_entropy
而不是 shannon
。更改我收到新的错误消息
Error: Insufficient values in manual scale. 3 needed but only 2 provided.
提前致谢,何塞。
对于您更新的问题:
您为 Origen 提供了两个形状值(16 和 1),但 Origen 有 3 个值(Minas ...、Rio ...和 Balsas ...)。您必须为每个 Origen 值提供一个形状值。