我想要一个带有饼图而不是点的物种 x 样本(两个字符串/因子)散点图。点的大小应与每个样本中物种的丰度相关。这可以通过以下几点轻松完成:
d <- data.frame(Tax=c("A", "B", "C"), Sample=c("01", "02", "03"))
d$A <- abs(rnorm(3, sd=1))
d$B <- abs(rnorm(3, sd=2))
d$size=c(0.1,0.2,0.3)
library(ggplot2)
ggplot(d,aes(x=Tax, y=Sample, size=size)) + geom_point()
用 scatterpie 包的 geom_scatterpie 可以实现用饼图替换点(可在 CRAN 上获得)
但是,这不适用于 x/y 美学中的因素:
library(scatterpie)
ggplot() + geom_scatterpie(aes(x=Tax, y=Sample, r=size), data=d, cols=c("A", "B"))
Warning:
Removed 6 rows containing non-finite values (stat_pie).
面板已绘制,但仍为空。请注意,scatterpie 与数字 x/y 美学效果很好:
d <- data.frame(x=c(1,2,3), y=c(1,2,3))
d$A <- abs(rnorm(3, sd=1))
d$B <- abs(rnorm(3, sd=2))
d$size=c(0.1,0.2, 0.3)
ggplot() + geom_scatterpie(aes(x=x, y=y, r=size), data=d, cols=c("A", "B")) + coord_fixed()
如何更改 geom_scatterpie 以接受非数字轴?