Заполните ячейки гистограммы собственным градиентом - PullRequest
0 голосов
/ 03 мая 2018

Я хочу создать гистограмму в R и ggplot2, в которой ячейки заполнены на основе их непрерывного значения x. В большинстве учебных пособий раскраска выполняется только по дискретным значениям или по плотности / количеству.

После в этом примере удалось покрасить корзины с помощью радуги:

df <- data.frame(x = runif(100))

ggplot(df) +
  geom_histogram(aes(x), fill = rainbow(30))

Радужная гистограмма

Я хочу использовать градиент цвета, в котором ячейки имеют цвет от синего (самый низкий) до желтого (самый высокий). Функция scale_fill_gradient(), кажется, достигает этого, но когда я вставляю ее вместо rainbow() для аргумента fill, я получаю ошибку:

> ggplot(df) +
+ geom_histogram(aes(x), fill = scale_fill_gradient(low='blue', high='yellow'))

Error: Aesthetics must be either length 1 or the same as the data (30): fill

Я пробовал несколько способов указать длину 30 для шкалы, но каждый раз получаю одну и ту же ошибку. Итак, мой вопрос:

  1. Является ли scale_color_gradient правильной функцией для аргумента fill или мне нужно использовать другую?
  2. Если это правильная функция, как я могу правильно указать длину?

1 Ответ

0 голосов
/ 03 мая 2018

Если вы хотите использовать разные цвета для каждой корзины, вам необходимо указать fill = ..x.. в эстетике, что является необходимой причудой geom_histogram. Использование scale_fill_gradient с предпочитаемым цветовым градиентом приводит к следующему выводу:

ggplot(df, aes(x, fill = ..x..)) +
  geom_histogram() +
  scale_fill_gradient(low='blue', high='yellow')

enter image description here

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