调整stat_bin2d中scale_fill_distiller的输出

时间:2018-02-20 09:11:24

标签: r ggplot2 colors

我可能有一个非常简单的问题,但我无法弄清楚答案。我正在使用diamonds数据集,并加载了包library(tidyverse)。我创建了一个很好的情节,使用price可视化caratstat_bin2d之间的关系:

ggplot(diamonds, aes(carat, price)) +
stat_bin2d(bins = 50, colour = "white") 

enter image description here

经过一番挖掘后,我找到了一种方法来调整绘图中的颜色,因为我一直希望不同计数之间的颜色会变得更加鲜明:

ggplot(diamonds, aes(carat, price)) +
stat_bin2d(bins = 50, colour = "white") +
scale_fill_distiller(palette = "Set2")

enter image description here 然而,无论我使用哪种调色板,计数上的颜色分布似乎都不正确,因为大多数箱子都是黄色的(代表小数量)。我认为使用对数刻度计数可以得到更好的图像,因为具有较低计数的箱子会带来更多的重量。但我不知道如何在代码中实现这一点。我相信必须有一个简单的解决方案,任何帮助都将非常感激。谢谢。

1 个答案:

答案 0 :(得分:1)

这样做的一个好方法是在比例尺上使用转换。一旦你知道如何,这很容易:

ggplot(diamonds, aes(carat, price)) +
  stat_bin2d(bins = 50, colour = "white") +
  scale_fill_distiller(palette = "Set2", trans = 'log10')

enter image description here

事情变得更清晰(在我看来)有更好的调色板:

ggplot(diamonds, aes(carat, price)) +
  stat_bin2d(bins = 50, colour = "white") +
  viridis::scale_fill_viridis(trans = 'log10')

enter image description here