gpt4 book ai didi

r - ggplot2:用一组相似的颜色绘制离散因子

转载 作者:行者123 更新时间:2023-12-04 11:40:21 25 4
gpt4 key购买 nike

在绘制它们时,我试图想出一种一致的方式来表示我的数据集中的每个因素。因此,例如,每次我绘制涉及词性的内容时,我都可以让“词性”的级别由不同深浅的蓝色表示:

eg.dat <- data.frame(rt=c(530, 540, 555), 
part.of.speech=c("Verb", "Noun", "Both")
)

ggplot(eg.dat, aes(part.of.speech, rt, fill=part.of.speech)) +
geom_bar(stat="identity", colour="black") +
scale_fill_manual(values=c("cyan", "blue", "darkblue"))

Specifying colours manually

然而,为每个因素想出这样花哨的颜色名称是很困难的,所以我一直在寻找更自动化的解决方案。一种相当黑客的解决方法是使用 alpha :
ggplot(eg.dat, aes(part.of.speech, rt, alpha=part.of.speech)) +
geom_bar(stat="identity", colour="black", fill="blue") +
scale_alpha_discrete(range=c(0.4, 1))

Using alpha

但我一直想知道是否有更简单的方法来选择像这样的短范围的相似颜色。 scale_colour_gradientggplot2 中键入函数不要使用这些离散因素,而且从 rainbow 中获取自定义颜色似乎并不特别容易。或 heat.colors .理想的功能是这样的: shades(n, central_colour="blue") , 返回 n颜色值。有关实现这一目标的最佳方法的任何建议?

最佳答案

scale_fill_discretescale_fill_hue会这样做。您可以定义 h , cl (色调、色度和亮度)。见 ?hcl了解更多详情

例如。

ggplot(eg.dat, aes(part.of.speech, rt, fill=part.of.speech)) +
geom_bar(stat="identity", colour="black") +
scale_fill_discrete( h =c(220,260))

enter image description here
scale_fill_hue将给出相同的结果(在这种情况下)。

您也可以使用 scale_fill_brewer它使用 RColorBrewer包并允许访问 colorbrewer调色板
ggplot(eg.dat, aes(part.of.speech, rt, fill=part.of.speech)) +
geom_bar(stat="identity", colour="black") +
scale_fill_brewer(palette = 'Blues')

enter image description here

关于r - ggplot2:用一组相似的颜色绘制离散因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11625005/

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