2015-12-08 95 views
2

更改颜色方案(14种颜色需要)我用下面的代码使用ggplot创建一个情节:R:如何ggplot

m = ggplot(derv, aes(x=Date, y=derv, colour = Season)) + geom_point() 
m2 = m+geom_abline(intercept = 0, slope = 0) 
m3 = m2 + geom_abline(intercept = 2.578269274, slope = 0) 
m3 = m3 + geom_abline(intercept = -1.4242559021, slope = 0) 

enter image description here

该地块看上去很美,但对于一些间隔比如2010sp和2010au,我很难分辨颜色的变化。所以我想改变这个阴谋的配色方案。

,我曾尝试下面的代码:

m3+scale_color_brewer(palette="Dark2") 

,但我得到一个警告消息:

enter image description here

2: In RColorBrewer::brewer.pal(n, pal) : 
n too large, allowed maximum for palette Dark2 is 8 
Returning the palette you asked for with that many colors 

和我检查了调色板可用,最大的一个包含12种颜色,但我需要14,所以我想知道是否有办法解决这个问题。

+1

创建一个manusal调色板?尽管14种颜色差异很大。像[这](http://stackoverflow.com/questions/9968975/using-ggplot2-in-r-how-do-i-make-the-background-of-a-graph-different-colours-in)可能有帮助。 – Heroka

+1

你想表达什么?谁是你的观众?他们关心什么?你有没有考虑过方面?如果14种不同颜色是区分所呈现信息的最佳方式,我会非常惊讶。 – JasonAizkalns

+0

我使用了方面,但没有看到如何可以超级有用。这张图主要是我自己,我需要能够区分不同的水平 – lll

回答

5

如果您真的想要/需要比调色板中给出的颜色更多的颜色,可以连接两个不同的调色板,然后使用scale_color_manual。我无法重现你的例子,但希望这种通信的普遍观点:

mycolors = c(brewer.pal(name="Dark2", n = 8), brewer.pal(name="Paired", n = 6)) 

ggplot(derv, aes(x=Date, y=derv, colour = Season)) + 
    geom_point() + 
    geom_abline(intercept = 0, slope = 0) + 
    geom_abline(intercept = 2.578269274, slope = 0) + 
    geom_abline(intercept = -1.4242559021, slope = 0) + 
    scale_color_manual(values = mycolors) 

顺便说一句,这将是巨大的,如果你能下一次提供了一个最小的和可重复的例子。也许只是将你的数据的一部分和dput()它带入问题中,或者通过运行data()找到最接近数据格式的数据集。

+1

'colorRampPalette(brewer.pal(name =“Dark2”,n = 8))(14)' – rawr

+0

哦,不错,这也可以。我也希望我的答案能够提供一个“啊哈!”一般来说如何使用调色板。 colorRampPalette很快,但是组合两个调色板可能允许OP手工挑选更容易区分的颜色。 – Nancy

+0

不应该scale_color_brewer提供一种方法来做到这一点。似乎很奇怪的使用或学习2个不同的apis和它的负担... – Sid