微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何摆脱R中geom_point中填充更深颜色的内点?

如何解决如何摆脱R中geom_point中填充更深颜色的内点?

我不希望图形中的几何点中出现更小、更深、更深的颜色点。我该如何摆脱它?我试着玩弄形状,但什么也没发生。

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))

enter image description here

按照下面兰迪的回答,我尝试复制它以按温度着色(这里是渐变)

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 选项。但这仍然是点

enter image description here

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)

enter image description here

解决方法

看起来 autoplot.prcompautoplot 指定的 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))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。