r - ggplot 颜色 : changing order of colours, 的最佳可视化保持原始因子排序

标签 r colors ggplot2

我喜欢默认的 ggplot2 颜色,但是对于我正在使用的数据集,读者能够区分两个相邻类别之间的差异非常重要。这对于默认颜色来说很困难,因为我有 10 个类别,因此生成的颜色在相邻因子组之间非常相似。

这是一个例子:

library(ggplot2)
x=rnorm(100,1,2)
y=rnorm(100,1,2)
category=letters[1:10]
data=cbind.data.frame(x,y,category)
ggplot(data,aes(x,y,colour=category))+stat_smooth(alpha=0)

给出这样的东西: enter image description here

例如,在这个图表上很难找出哪个是 d 哪个是 e,因为它们都是绿色的,重要的是区分我的数据的相邻因子组。现有的顺序也很重要,我希望它在图例中按顺序显示。

所以我的问题是;有没有办法保留可爱的默认 ggplot2 颜色(跨 10 个因子级别),但稍微混合顺序,以便相邻类别看起来更容易区分?在我的数据集中,不相邻的类别通常可以通过其实际分布来确定,因此颜色对于这些类别来说不太重要。

我尝试过使用不同的 scale_colour_brewer() 调色板,但颜色并不那么漂亮。

最佳答案

要打乱颜色的顺序,您可以使用

require(scales)
n <- length(levels(data$category)) # number of colors
cols <- hue_pal(h = c(0, 360) + 15, 
                c = 100, l = 65, 
                h.start = 0, direction = 1)(n)[order(sample(1:n, n))] # color palette in random order
ggplot(data,aes(x,y,colour=category))+stat_smooth(alpha=0, size=2) + 
  scale_color_manual(values = cols) 

如果您想要可区分的颜色,请查看 this post

关于r - ggplot 颜色 : changing order of colours, 的最佳可视化保持原始因子排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548353/

相关文章:

ggplot2 中面的旋转

r - 将置信区间添加到qq图?

r - 如何在 R 中使用 prcomp 将属性数量减少到 20 个?

r - 按 ggplot2 geom_count 中的出现次数对点进行着色

windows - 如何更改 Windows 命令提示符中的文本颜色

android - 悬停按钮颜色变化

r - ggplot2:图例中的虚线

r - 如何使用 R 的 ggplot2 编辑圆环图的标签?

R 有时不会保存我的历史记录

java - 集成 R 和 Hadoop(使用 JRI)