问题描述
我不希望图形中的几何点中出现更小、更深、更深的颜色点。我该如何摆脱它?我试着玩弄形状,但什么也没发生。
library(stats)
library(ggfortify)
sp1 <- rnorm(72,mean = 4,1)
sp2 <- rnorm(72,mean = 2,1)
sp3 <- rnorm(72,mean = 3,1)
sp4 <- rnorm(72,mean = 9,1)
temp <- rnorm(72,mean = 20,5)
season <- rep(c("Summer","Autumn","Winter","Spring"),each = 18)
sp.abd <- data.frame(sp1,sp2,sp3,sp4,season,temp)
pca_res <- prcomp(sp.abd[,-c(5,6)],scale. = TRUE)
autoplot(pca_res,loadings = TRUE,loadings.colour = 'blue',loadings.label = TRUE,loadings.label.size = 3) +
theme_classic() + geom_point(aes(color = sp.abd$season),size = 6,alpha = 0.5) +
scale_color_manual(values = rainbow(12,s = 0.6,start = 0,end = 0.7,rev = TRUE))
按照下面兰迪的回答,我尝试复制它以按温度着色(这里是渐变)
autoplot(pca_res,sp.abd,color = temp,loadings.label.size = 3) +
scale_colour_gradient2(low = "white",mid = "cyan",high = "dodgerblue4",na.value = NA)
它只生成一个灰色图。只有当我在 autoplot 命令之外调用 color 时,它才会使用 scale_colour_gradient2 选项。但这仍然是点
autoplot(pca_res,alpha. = 0.5,loadings.label.size = 3) + geom_point(aes(colour = sp.abd$temp)) +
scale_colour_gradient2(low = "white",na.value = NA)
解决方法
看起来 autoplot.prcomp
(autoplot
指定的 prcomp
对象的 ggfortify
方法)已经在没有 geom_point()
调用的情况下处理了点,所以您可以将颜色映射、点大小和点不透明度放在 autoplot
中:
library(stats)
library(ggfortify)
sp1 <- rnorm(72,mean = 4,1)
sp2 <- rnorm(72,mean = 2,1)
sp3 <- rnorm(72,mean = 3,1)
sp4 <- rnorm(72,mean = 9,1)
season <- rep(c("Summer","Autumn","Winter","Spring"),each = 18)
sp.abd <- data.frame(sp1,sp2,sp3,sp4,season)
pca_res <- prcomp(sp.abd[,-5],scale. = TRUE)
autoplot(pca_res,################
# Add this stuff
data = sp.abd,color = 'season',size=6,alpha=.5,################
loadings = TRUE,loadings.colour = 'blue',loadings.label = TRUE,loadings.label.size = 3) +
theme_classic() +
scale_color_manual(values = rainbow(12,s = 0.6,start = 0,end = 0.7,rev = TRUE))