Объединить легенды о цвете и форме в одну легенду
Я создаю сюжет в ggplot из 2 x 2 учебного проекта и хотел бы использовать 2 цвета и 2 символа, чтобы classифицировать 4 разных комбинаций лечения. В настоящее время у меня есть 2 легенды, одна для цветов и одна для двух фигур. Как я могу объединить их в одну легенду, поэтому у меня есть один синий круг, один красный круг, один синий треугольник и один треугольник?
Некоторые данные:
state1 <- c(rep(c(rep("N", 7), rep("Y", 7)), 2)) year <- rep(c(2003:2009), 4) group1 <- c(rep("C", 14), rep("E", 14)) group2 <- paste(state1, group1, sep = "") beta <- c(0.16,0.15,0.08,0.08,0.18,0.48,0.14,0.19,0.00,0.00,0.04,0.08,0.27,0.03,0.11,0.12,0.09,0.09,0.10,0.19,0.16,0.00,0.11,0.07,0.08,0.09,0.19,0.10) lcl <- c(0.13,0.12,0.05,0.05,0.12,0.35,0.06,0.13,0.00,0.00,0.01,0.04,0.20,0.00,0.09,0.09,0.06,0.06,0.07,0.15,0.11,0.00,0.07,0.03,0.05,0.06,0.15,0.06) ucl <- c(0.20,0.20,0.13,0.14,0.27,0.61,0.28,0.27,0.00,1.00,0.16,0.16,0.36,0.82,0.14,0.15,0.13,0.13,0.15,0.23,0.21,0.00,0.15,0.14,0.12,0.12,0.23,0.16) data <- data.frame(state1,year,group1,group2,beta,lcl,ucl)
Участок:
- Проблемы с установкой пакета devtools
- Использование функций `...` (трехточечная или точка-точка) в функциях
- Как подмножество кадра данных в фактор и повторить график для каждого подмножества?
- Субфигуры или субтитры с ножом?
- Как изменить формат отдельной панели facet_wrap?
library(ggplot2) pd <- position_dodge(.65) ggplot(data = data, aes(x = year, y = beta, colour = state1, group = group2, shape = group1)) + geom_point(position = pd, size = 4) + geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) + scale_colour_hue(name = "Treatment & State", #Legend label, use darker colors labels = c("Control", "Exclosure"), l = 40) + scale_shape(name = "State", labels = c("Non-F", "Flwr"))
- Создайте data.frame, где столбец - это список
- Нумерация строк внутри групп в кадре данных
- Упорядоченный график столбцов в ggplot
- Преобразование многих форматов даты-времени в один стандартный формат
- Вызовите применимую функцию для каждой строки данных с несколькими аргументами из каждой строки
- Прочитать текстовый файл UTF-8 с помощью спецификации
- Почему использование обновления на lm внутри сгруппированных data.table потеряет данные модели?
- Как слить 2 вектора чередующихся индексов?
Вы должны использовать одинаковые значения name
и labels
как для формы, так и для цветовой шкалы.
pd <- position_dodge(.65) ggplot(data = data,aes(x= year, y = beta, colour = group2, shape = group2)) + geom_point(position = pd, size = 4) + geom_errorbar(aes(ymin = lcl, ymax = ucl), colour = "black", width = 0.5, position = pd) + scale_colour_manual(name = "Treatment & State", labels = c("Control, Non-F", "Control, Flwr", "Exclosure, Non-F", "Exclosure, Flwr"), values = c("blue", "red", "blue", "red")) + scale_shape_manual(name = "Treatment & State", labels = c("Control, Non-F", "Control, Flwr", "Exclosure, Non-F", "Exclosure, Flwr"), values = c(19, 19, 17, 17))
Красный круг, синий круг, красный треугольник, синий треугольник, как вы спрашивали:
ggplot(data =data,aes(x= year, y = beta, shape=group2, colour=group2,group = group2)) + geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) + geom_point(position = pd, size = 4) + scale_colour_manual(values=c("red","blue","red","blue")) + scale_shape_manual(values=c(19,19,17,17)) + scale_fill_hue(name="Treatment & State", #Legend label, use darker colors labels=c("Control", "Exclosure"),l=40)