Градиентные разрывы на графике ggplot stat_bin2d

У меня есть 2D гистограмма, созданная с stat_bin2d в ggplot2 пакет. Я хотел бы контролировать количество разрывов в цветовом градиенте, а также их расположение. Я уверен, что просто упускаю из виду что-то маленькое, но я не могу понять, как контролировать разрывы в биннинге.

Пример:

x <- rnorm(100)^2
y <- rnorm(100)^2
df <- data.frame(x,y)
require(ggplot2)
p <- ggplot(df, aes(x, y)) 
p <- p + stat_bin2d(bins = 20)
p + scale_colour_gradient2(breaks=c(1,2,3,4,5,6))

Это производит:

Этот участок имеет только 3 перерыва в c(5,10,15) несмотря на мою тщетную попытку сделать перерыв в c(1,2,3,4,5,6))

Есть намеки?

2 ответа

Решение

Вот пример объединения cut а также bin2d:

p <- ggplot(df, aes(x, y, fill=cut(..count.., c(0,6,8,9,Inf))))
p <- p + stat_bin2d(bins = 20)
p + scale_fill_hue("count")

Поскольку существует много способов сделать перерывы произвольными, если вы четко определите, что вы хотите, возможно, вы сможете получить лучший ответ.

Я думаю, что вы, вероятно, хотите меньше говорить о двоюродном брате scale_colour_gradient2(), scale_fill_gradient2()

Используя ваши данные:

p + scale_fill_gradient2(breaks=c(1,2,3,4,5,6))

Также обратите внимание на дополнительные параметры low, mid, а также high для дополнительного контроля.

Другие вопросы по тегам