gpt4 book ai didi

r - ggplot2:带有 scale_colour_brewer 的 geom_smooth 颜色

转载 作者:行者123 更新时间:2023-12-04 10:38:55 24 4
gpt4 key购买 nike

我使用 geom_smooth 创建了一个简单的图形:

test.dat <- data.frame(matrix(c(runif(20, 0, 20)), 10, 2))
names(test.dat) <- c("x", "y")

test.plot <- ggplot(test.dat, aes(x,y)) + geom_point() +
geom_smooth(method="loess")

生成的线条默认为蓝色。我可以通过添加以下内容手动将其更改为给定颜色:

test.plot + geom_smooth(method="loess", colour="black")

但是,我想根据我一直用于一系列绘图的调色板来选择颜色。通常,这将通过添加相应的行来实现:

scale_colour_brewer(type = "div", palette = "Spectral")

然而,这没有任何效果(使用 scale_fill_brewer 也没有)。我发现了一些关于 geom_smooth with color here 行为的讨论。 ,但没有针对此特定问题的明显修复。有什么建议吗?

最佳答案

您可以使用:

test.plot + 
geom_smooth(aes(colour=TRUE), method="loess") +
scale_colour_brewer(type = "div", palette = "Spectral")

关键是在 mapping 参数中使用 colourgeom_smooth(aes 部分)。使用什么值并不重要,它只需要与您用来指定图中其他线条颜色的任何其他值不同即可。

这是一个更完整的例子:

set.seed(1)
test.dat <- data.frame(
x=runif(20), y=runif(20),
z=sample(letters[1:2], 20, rep=T)
)

ggplot(test.dat, aes(x, y, colour=z)) +
geom_smooth(aes(colour="d"), method="loess") +
geom_point() +
geom_line() +
scale_colour_brewer(type = "div", palette = "Spectral")

enter image description here

请注意我们如何通过向现有颜色值(“a”、“b”)添加新的不同值(“d”)来让 geom_smooth 参与色阶。 Ggplot 收集分配给 colour aesthetic mapping 的所有值(在本例中,unique(c(test.dat$z, "d")) ), 并将色标中的颜色分配给它们。

关于r - ggplot2:带有 scale_colour_brewer 的 geom_smooth 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26746740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com