2015-03-02 68 views
1

我有一个图表,我想要着色bin密度(如下)。但我希望单个箱(值= 1)作为黑色和更高的值,或者作为单独的其他颜色,或者更好,作为渐变。与ggplot bin2d不对称颜色渐变

我只能有一个黑色 - >红色渐变,或完全离散的颜色,这太容易混淆了。我无法成功将手动颜色映射到bin2d函数的“count”变量。任何人都可以提出修正?

我的代码:

ggplot(x, aes(x=as.factor(V4), y=V2)) + 
    geom_bin2d(binwidth = c(1,100)) + 
    scale_fill_continuous(low="black", high="red") + 
    facet_wrap(~V1, nrow = 1) 

enter image description here

放大版本,可见它是多么难以区分2S enter image description here

感谢

编辑:我已经实现了一个更好的办法代表这一点。我要的是规模,看起来像这样: enter image description here

我的数据(X)是这样的:

V1 V2 V3 V4 
    5 5831 30 A 
    5 20451 38 A 
    5 23151 34 B 
    5 30061 39 A 
    5 34191 32 B 
    5 41641 30 A 

因此,V2是行了y轴的位置,V1是面V4是垂直列。该行的存在(以前由V3确定,但在此不相关)有助于bin2d计数。

+0

人们可以有更多的帮助,如果你提供的示例数据 – arvi1000 2015-03-02 17:13:07

+0

(什么在'x'?)我已经加入了,谢谢。 – Daniel 2015-03-02 17:19:32

回答

0

我已经设法解决了这个问题。发现可以使用映射到绑定数“..count ..”,所以现在的代码如下:

ggplot(x, aes(x=as.factor(V4), y=V2)) + 
    geom_bin2d(binwidth = c(1,100), aes(fill=as.factor(..count..))) + 
    scale_fill_manual(values = c("#000000", "#FF9900", "#FF6600", "#FF3300")) + 
    scale_y_continuous(breaks = pretty_breaks(12)) + 
    facet_wrap(~V1, nrow = 1)