如何摆脱 R 中 geom_point 中填充更深颜色的内部点?
How to get rid of inner dot filled with deeper colour in geom_point in R?
我不想要图形中几何点中那些更小、内部、更深颜色的点。我该如何摆脱它?我试着摆弄各种形状,但什么也没发生。
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))
根据下面 Randy 的回答,我尝试复制它以按温度着色(此处为渐变)
autoplot(pca_res, sp.abd, color = temp,
loadings = TRUE, loadings.colour = 'blue',
loadings.label = TRUE, loadings.label.size = 3) +
scale_colour_gradient2(low = "white", mid = "cyan", high = "dodgerblue4", na.value = NA)
它只生成一个灰色图。只有当我在 autoplot 命令之外调用颜色时,它才会使用 scale_colour_gradient2 选项。但这仍然是点
autoplot(pca_res, size = 6, alpha. = 0.5,
loadings = TRUE, loadings.colour = 'blue',
loadings.label = TRUE, loadings.label.size = 3) + geom_point(aes(colour = sp.abd$temp)) +
scale_colour_gradient2(low = "white", mid = "cyan", high = "dodgerblue4", na.value = NA)
看起来 autoplot.prcomp
(ggfortify
指定的 prcomp
对象的 autoplot
方法)已经在没有 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))
我不想要图形中几何点中那些更小、内部、更深颜色的点。我该如何摆脱它?我试着摆弄各种形状,但什么也没发生。
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))
根据下面 Randy 的回答,我尝试复制它以按温度着色(此处为渐变)
autoplot(pca_res, sp.abd, color = temp,
loadings = TRUE, loadings.colour = 'blue',
loadings.label = TRUE, loadings.label.size = 3) +
scale_colour_gradient2(low = "white", mid = "cyan", high = "dodgerblue4", na.value = NA)
它只生成一个灰色图。只有当我在 autoplot 命令之外调用颜色时,它才会使用 scale_colour_gradient2 选项。但这仍然是点
autoplot(pca_res, size = 6, alpha. = 0.5,
loadings = TRUE, loadings.colour = 'blue',
loadings.label = TRUE, loadings.label.size = 3) + geom_point(aes(colour = sp.abd$temp)) +
scale_colour_gradient2(low = "white", mid = "cyan", high = "dodgerblue4", na.value = NA)
看起来 autoplot.prcomp
(ggfortify
指定的 prcomp
对象的 autoplot
方法)已经在没有 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))