当scale_colour_manual什么都不做的时候如何修改颜色?

时间:2014-06-03 12:46:42

标签: r ggplot2

我有一个散点图,它将通过搜索特定蛋白质生成。结果将是完全匹配(可能),部分匹配(可能)和没有匹配。

所以典型的结果集是1匹配,3分,6396不匹配。所有这6400种蛋白质都具有与它们相关的foldChange和pvalue。我需要将这3个类别分为不同的颜色,不匹配为#878282,匹配#0072B2,部分匹配#BC2B2B。我遇到的问题是scale_colour_manual无论我添加的值如何都不会修改颜色。至少它不是在R中为我做的,或者当我在django中运行robject时。这是情节代码的一部分。

colmapping <- unique(data_source[c('labels','colors')])
    plot<-ggplot(data_source, aes(x=foldChange, y=pvalues, col=factor(labels)))+
        scale_colour_manual(breaks=colmapping$labels, values= colmapping$colors)+   
        scale_colour_hue(l=40)+
        xlab(xaxis)+ylab(yaxis)+
        geom_point()+    
        scale_y_continuous(limits=c(0, 4))+
        scale_x_continuous(limits=c(-5, 5), breaks=c(-5,-4,-3,-2,-1,0,1,2,3,4,5))+
        theme_bw()+
        theme(axis.title.x = element_text(size=14, vjust=-0.4))+
        theme(axis.title.y = element_text(size=14, angle=90))+
        theme(axis.text.x = element_text(size=10))+
        theme(axis.text.y = element_text(size=10))

我可以通过最初设置geom_point灰色来更改颜色,如果检测到匹配则修改它,但这不会给我一个解释什么是什么的图例。

对于为什么会发生这种情况或如何修复它以实现前面提到的结果的任何见解都将非常感激。

1 个答案:

答案 0 :(得分:3)

您的问题是您要添加两个色标。如果您直接在R中键入代码,则会收到以下消息:

Scale for 'colour' is already present. Adding another scale for 'colour', which will replace the existing scale.

scale_color_huescale_color_manual都是指定ggplot应如何为不同类别指定颜色的方法。首先,您要指定颜色应从colmapping框架中取出,然后说&#34; no,actaully,废弃,根据色调创建比例,亮度= 40&#34;。

您的scale_color_hue(l=40)正在覆盖您的scale_colour_manual(breaks = ...,您应该只使用其中一个。在您的帖子中,我认为您只需要scale_color_manual