2014-11-21 35 views
4

我已经订购了我想使用颜色酿造器的分类数据。但我很难看到非常低的值。有没有办法削减那些较低的值或设置下限的规模?我可以调整scale_color_brewer的下限吗?

ggplot(data.frame(x=1:6, y=10:15, w=letters[1:6]), aes(x, y, color=w)) + 
geom_point()+ scale_color_brewer(type="seq", palette=1) + theme_bw() 

有没有更好的方法来做到这一点?到目前为止,我看到的定性尺度不是有序或连续尺度,不适用于离散数据。如果这是唯一的路线,我知道手动缩放。

+0

一个简单的可能的替代方案是使用具有围绕填充区域的轮廓的曲线图符号,如'PCH = 21'(例如参见[** **这里](http://www.cookbook-r.com/Graphs/Shapes_and_line_types/))。那么你可以用“填充”来代替。 'ggplot(data.frame(x = 1:6,y = 10:15,w = letters [1:6]),aes(x,y,fill = w))+ geom_point(pch = 21,size = 5 )+ scale_fill_brewer(type =“seq”,palette = 1)+ theme_bw()' – Henrik 2014-11-21 08:36:09

回答

3

你不能只设置一个下限。但是,您可以使用比所需颜色更多的调色板,并将最亮的颜色映射到未使用的级别。下面是与9级水平的示例:

ggplot(data.frame(x=1:6, y=10:15, w=letters[1:6]), aes(x, y, color=w)) + 
    geom_point() + theme_bw() + 
    scale_color_brewer(type="seq", palette=1, 
        limits=c(LETTERS[1:3], letters[1:6]), 
        breaks=letters[1:6]) 
+0

是的!这是我想弄清楚的解决方法。谢谢! – Tom 2014-11-21 08:13:05

1

我不知道有任何额外的参数,你可以传递给scale_colour_brewer()来设置比例的下限(见http://docs.ggplot2.org/current/scale_brewer.html

您有更多的灵活性与ggplot的色彩选择,内搭一个格式:scale_xxx_yyy,例如scale_fill_discrete(),它需要更多的参数。例如见http://docs.ggplot2.org/current/scale_hue.html,但也注意其他选项('另见')。

根据您的要求,scale_fill_continuous可能是序数据的良好起点。

例如,您可以将http://colorbrewer2.org/的颜色传递给它,然后选择更合适的起始颜色。唯一的问题是你需要使用如下工具将rgb/hex值转换为HSL值:http://serennu.com/colour/hsltorgb.php

+0

Thanks @Phil。我尝试过'scale_colour_discrete',但找不到有序的分类值(即某种梯度)的方法。你知道一种方式吗?如果我只是选择价值观,那么我几乎回到了手册。 – Tom 2014-11-21 08:06:10

+0

我已经更新了我的答案。 @shadow的答案更适用于您的具体要求,但scale_xxx_yyy选项总是值得考虑。 – Phil 2014-11-22 12:22:15

相关问题