在R中绘制PCoA排序图时无法手动调整各处理组点大小
在phyloseq的PCoA排序图中按处理组调整点大小
问题背景
处理细菌OTU/ASV表,使用R的phyloseq包绘制PCoA排序图,需按10个处理组手动调整点的大小。目前可正常修改各组颜色和形状,但尝试在plot_ordination()中添加size = 'Treatment'参数时触发「unused argument」错误。
报错代码
ordi.abg = plot_ordination(physeq.2, sb.ord.abg, type = 'samples', color = 'Treatment', shape = 'Treatment', size = 'Treatment') ordi.abg
报错信息
Error in plot_ordination(physeq.2, sb.ord.abg, type = "samples", color = "Treatment", : unused argument (size = "Treatment")
当前可运行代码(仅调整颜色、形状)
ordi.abg + geom_point(size=5) + theme_bw(base_size = 12) + ggtitle('Soybean 20oz / CWT ') + theme(text = element_text(size = 10), axis.text = element_text(size = 7), axis.title = element_text(size = 5)) + scale_color_manual(values = c("#003366", "#666699" , "#6666CC", "#6666FF", "#336699", "#330000", "#990000", "#CC0000", "#FF0000", "#660000")) + scale_shape_manual(values=c(1,1,1,1,1,2,2,2,2,2)) +
解决方案
plot_ordination()函数本身不支持直接传入size参数进行分组映射,需通过后续图层绑定size映射并手动指定大小:
- 先调用
plot_ordination()时仅指定color和shape的分组映射:
ordi.abg = plot_ordination(physeq.2, sb.ord.abg, type = 'samples', color = 'Treatment', shape = 'Treatment')
- 在图层中修改
geom_point(),将size绑定到Treatment分组,再用scale_size_manual()传入对应10个处理组的大小值:
ordi.abg + geom_point(aes(size = Treatment)) + theme_bw(base_size = 12) + ggtitle('Soybean 20oz / CWT ') + theme(text = element_text(size = 10), axis.text = element_text(size = 7), axis.title = element_text(size = 5)) + scale_color_manual(values = c("#003366", "#666699" , "#6666CC", "#6666FF", "#336699", "#330000", "#990000", "#CC0000", "#FF0000", "#660000")) + scale_shape_manual(values=c(1,1,1,1,1,2,2,2,2,2)) + scale_size_manual(values = c(3, 3, 3, 3, 3, 6, 6, 6, 6, 6)) # 按需调整各组大小,长度需与处理组数量一致
注意事项
scale_size_manual()的values参数长度必须与处理组数量(10个)匹配values的顺序要和scale_color_manual()、scale_shape_manual()的分组顺序对应,保证同一处理组的视觉属性统一
内容的提问来源于stack exchange,提问作者JABR
相关产品推荐
相关产品推荐

