gpt4 book ai didi

r - 如何更改 ggplot2 密度图中的颜色?

转载 作者:行者123 更新时间:2023-12-03 01:26:41 27 4
gpt4 key购买 nike

摘要:我想选择 ggplot2() 密度分布图的颜色,而不丢失自动生成的图例。

详细信息:我使用以下代码创建了一个数据框(我意识到它并不优雅,但我只是在学习 R):

cands<-scan("human.i.cands.degnums")
non<-scan("human.i.non.degnums")
df<-data.frame(grp=factor(c(rep("1. Candidates", each=length(cands)),
rep("2. NonCands",each=length(non)))), val=c(cands,non))

然后我像这样绘制它们的密度分布:

library(ggplot2)
ggplot(df, aes(x=val,color=grp)) + geom_density()

这会产生以下输出:

enter image description here

我想选择线条显示的颜色,但我无法弄清楚如何选择。我读过该网站上的各种其他帖子,但无济于事。最相关的是:

经过一段时间的搜索,我尝试过:

## This one gives an error
ggplot(df, aes(x=val,colour=c("red","blue"))) + geom_density()
Error: Aesthetics must either be length one, or the same length as the dataProblems:c("red", "blue")

## This one produces a single, black line
ggplot(df, aes(x=val),colour=c("red","green")) + geom_density()

我想出的最好的办法是:

ggplot() + geom_density(aes(x=cands),colour="blue")  + geom_density(aes(x=non),colour="red")

enter image description here正如您在上图中看到的,最后一个命令正确地更改了线条的颜色,但它删除了图例。我喜欢 ggplot2 的图例系统。它很好而且简单,我不想费力地重新创建 ggplot 显然能够做的事情。最重要的是,语法非常非常难看。我的实际数据框由 7 组不同的数据组成。我不敢相信编写 + geom_densis(aes(x=FOO),colour="BAR") 7 次是最优雅的编码方式。

所以,如果一切都失败了,我会接受一个答案,告诉我如何让图例回到第二个情节。但是,如果有人能告诉我如何正确地做到这一点,我会非常高兴。

最佳答案

set.seed(45)
df <- data.frame(x=c(rnorm(100), rnorm(100, mean=2, sd=2)), grp=rep(1:2, each=100))
ggplot(data = df, aes(x=x, color=factor(grp))) + geom_density() +
scale_color_brewer(palette = "Set1")

ggplot(data = df, aes(x=x, color=factor(grp))) + geom_density() +
scale_color_brewer(palette = "Set3")

为我提供了具有不同颜色组的相同绘图。

关于r - 如何更改 ggplot2 密度图中的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14490870/

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