#r #ggplot2
#r #ggplot2
Вопрос:
я хотел бы создать две гистограммы в одном масштабе по оси y, вот моя попытка:
library(rvest)
library(tidyverse)
library(gridExtra)
dat_url <- 'https://gender-pay-gap.service.gov.uk/viewing/download-data/2019'
dat <- read_csv(dat_url)
p1 <- dat %>%
filter(between(DiffMedianHourlyPercent,-100,100)) %>%
ggplot(aes(x = DiffMedianHourlyPercent))
geom_histogram(aes(fill = ..count..), binwidth = 2)
p2 <- dat %>%
filter(between(DiffMeanHourlyPercent,-100,100)) %>%
ggplot(aes(x = DiffMeanHourlyPercent))
geom_histogram(aes(fill = ..count..), binwidth = 2)
grid.arrange(p1, p2, nrow = 1)
Кроме того, я бы хотел, чтобы отрицательные значения были другого цвета, похожего на этот график:
Ответ №1:
Чтобы раскрасить части по-разному для значений>0 и <= 0, вы можете просто изменить fill=
эстетику. Например, для одного графика вы можете сделать
dat %>%
filter(between(DiffMedianHourlyPercent,-100,100)) %>%
ggplot(aes(x = DiffMedianHourlyPercent))
geom_histogram(aes(fill = DiffMedianHourlyPercent>0), binwidth = 2)
guides(fill=FALSE)
(здесь мы также отключаем легенду)
Обратите внимание, что некоторые из выбранных вами ячеек содержат как положительные, так и отрицательные значения. Если вы этого не хотите, вы можете сами управлять расположением ячеек
dat %>%
filter(between(DiffMedianHourlyPercent,-100,100)) %>%
ggplot(aes(x = DiffMedianHourlyPercent))
geom_histogram(aes(fill = DiffMedianHourlyPercent>0),
breaks=seq(-100, 100, by=2))
guides(fill=FALSE)