【问题标题】:asymmetric colour gradient with ggplot bin2dggplot bin2d的不对称颜色渐变
【发布时间】:2015-03-02 17:05:30
【问题描述】:

我有一个图表,我想为 bin 密度着色(如下所示)。但我希望将单个 bin(值 = 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)

放大版,显示区分 2s 的难度

编辑:我已经意识到一种更好的方式来表示这一点。我想要的是一个看起来像这样的比例:

我的数据 (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 计数。

【问题讨论】:

  • 如果您提供示例数据(x 中的内容是什么?),人们可以提供更多帮助
  • 我已经添加进去了,谢谢。

标签: r ggplot2


【解决方案1】:

我已经设法解决了这个问题。发现可以使用“..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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-10
    • 2020-11-27
    • 2018-10-20
    • 2019-08-22
    • 2022-09-23
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多