Как изменить цвет заливки для вычисляемой переменной в geom_bar - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь изменить цвет заливки по умолчанию с синего на зеленый или красный. Вот код, который я использую

Top_pos<- ggplot(Top_10, aes(x=reorder(Term,Cs), y=Cs, fill=pvalue)) + 
    geom_bar(stat = "identity", colour="black") + coord_flip() 

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

bar plot with current colors

Ответы [ 2 ]

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

Легко спутать масштабирование цвета и масштабирование заливки. В случае geom_bar / geom_col, цвет меняет границы вокруг полос, в то время как заливка меняет цвета внутри полос.

У вас уже есть код, необходимый для масштабирования цвета заливки по значению: aes(fill = pvalue). Часть, которую вы пропустили, является командой scale_fill_*. Есть несколько вариантов; некоторые из наиболее распространенных для непрерывных шкал scale_fill_gradient или scale_fill_distiller. Некоторые пакеты также экспортируют палитры и функции масштабирования, чтобы упростить их использование, например, в последнем примере используется масштаб из пакета rcartocolor.

scale_fill_gradient позволяет вам устанавливать конечные точки для градиента; scale_fill_gradient2 и scale_fill_gradientn позволяют установить несколько средних точек для градиента.

scale_fill_distiller интерполирует палитры ColorBrewer, предназначенные для дискретных данных, в непрерывный масштаб.

library(tidyverse)

set.seed(1234)
Top_10 <- tibble(
    Term = letters[1:10],
    Cs = runif(10),
    pvalue = rnorm(10, mean = 0.05, sd = 0.005)
)

plt <- ggplot(Top_10, aes(x = reorder(Term, Cs), y = Cs, fill = pvalue)) +
    geom_col(color = "black") +
    coord_flip()

plt + scale_fill_gradient(low = "white", high = "purple")

plt + scale_fill_distiller(palette = "Greens")

plt + rcartocolor::scale_fill_carto_c(palette = "Sunset")

Создано в 2018-05-05 пакетом Представить (v0.2.0).

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

Лично я фанат R Color Brewer . У него есть набор встроенных палитр, которые хорошо сочетаются друг с другом для качественных, последовательных или расходящихся типов данных. Посмотрите colorbrewer2.org , где приведены примеры реальных данных

В более общем смысле, и для того, как на самом деле его кодировать, вы всегда можете добавить scale_fill_manual аргумент. В ggplot2 есть несколько встроенных элементов для градиентов (примеры здесь)

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