Как дифференцировать группы в гистограмме, но при этом сохранить градиент?
Как изменить шаблон заливки или цветовую группу по группам? Мой текущий код только изменяет схему; Я хочу изменить шаблон заливки или заполнить группу цветов (не наброски) по полу, но также сохранить свой градиент заполнения, который Eye.
colors <- c("Green", "Blue", "Hazel", "Brown")
data <- data.frame(HairEyeColor)
data$Eye <- as.numeric(factor(data$Eye, labels = 1:4))
data <- data[c(5,6,12,15,17,22,27,28), ]
ggplot(data, aes(x = Hair, y = Freq, fill = Eye, group = Sex)) +
geom_bar(stat = "identity", position = position_dodge(), aes(colour = Sex)) +
scale_fill_continuous(low = "blue", high = "green")
1 ответ
Барный участок от ggplot2
В настоящее время пакет не поддерживает шаблон заполнения (и насколько я знаю, это невозможно и с другими пакетами). Однако есть несколько решений, которые помогут легко определить разницу в поле зрения и поле зрения, которые вы можете рассмотреть:
1. Использование разных (легче) fill
цвета, более толстые границы баров и theme_bw()
:
ggplot(data, aes(x = Hair, y = Freq, fill = Eye, group = Sex)) +
geom_bar(stat = "identity", position = position_dodge(), aes(colour = Sex), size=2) +
scale_fill_continuous(low = "white", high = "grey") + theme_bw()
Объединение двух столбцов: Пол и Глаз, чтобы получить новый столбец фактора, который будет использоваться как
fill
аргумент:data$Sex_Eye <- paste(data$Sex, data$Eye, sep="_") ggplot(data, aes(x = Hair, y = Freq, fill = Sex_Eye)) + geom_bar(stat = "identity", position = position_dodge()) + theme_bw()
- С помощью
geom_jitter()
вместоgeom_bar()
и установить аргумент формы как секс:
ggplot(data, aes(x = Hair, y = Freq, colour = Eye, shape = Sex)) +
geom_jitter(size=5) + scale_colour_continuous(low = "blue", high = "green") + theme_bw()