gpt4 book ai didi

r - 在 ggplot2 的 aes() 函数中使用颜色

转载 作者:行者123 更新时间:2023-12-04 09:39:05 26 4
gpt4 key购买 nike

我是新来的 ggplot2 .我想了解如何使用 ggplot .我正在阅读 Wickham 的书,但仍在努力思考如何使用 aes()功能。在一个相关的帖子中,我们讨论了我们应该尽量避免在 aes() 中使用变量。即“不要将常量放入 aes() - 仅将映射放入实际数据列。”

我的目标是观察 ggplots 当我们有颜色时的行为 aes()用于标签(如 Wickham 的书中所述)并覆盖颜色以打印颜色。

我从这个开始:

library(ggplot2)
data(mpg)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE) +
geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE) +
labs(colour = "Method")

这很好地绘制了图形并标记了它们。但是,我对使用的颜色不满意。所以,我再次尝试使用覆盖颜色:
windows()
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE, color = "magenta") +
geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE, color = "red") +
labs(colour ="Method")

我添加了 color = "red",我们可以看到 labs()aes(color())没有任何效果。为什么会发生这种情况?我很好奇。我会很感激的想法。

最佳答案

当您指定时, aes() gg_plot 之外的颜色不会将颜色信息视为数据的一部分(并且会覆盖以前的信息),因此不再显示图例。

如果要指定自己的颜色并将颜色信息保留为“相关数据”而不是“显示信息”,则应添加 scale_colour_manual()命令指定图例颜色并将颜色属性保留在 aes :

ggplot(mpg, aes(displ, hwy)) +
geom_point() +
geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE) +
geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE) +
labs(colour ="Method") + scale_colour_manual(values = c("loess" = "magenta", "lm" = "red"))

enter image description here

关于r - 在 ggplot2 的 aes() 函数中使用颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39112735/

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