使用ggplot bin2d进行不对称颜色渐变

时间:2015-03-02 17:05:30

标签: r ggplot2

我有一个图表,我想为箱密度着色(如下所示)。但是我希望将单个容器(值= 1)作为黑色和更高的值作为单个其他颜色,或者更好,作为渐变。

我只能使用一个黑色 - >红色渐变,或完全离散的颜色,这太混乱了。我还没有能够成功地将手动颜色映射到“计数”中。 bin2d函数的变量。有人可以建议修复吗?

我的代码:

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

Zoomed版本,显示区分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是facets,V4是垂直列。行的存在(先前由V3确定但在此处不相关)有助于bin2d计数。

1 个答案:

答案 0 :(得分: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)