Я хочу создать гистограмму в 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 для шкалы, но каждый раз получаю одну и ту же ошибку. Итак, мой вопрос:
- Является ли
scale_color_gradient
правильной функцией для аргумента fill
или мне нужно использовать другую?
- Если это правильная функция, как я могу правильно указать длину?