Как изменить порядок элементов легенды?
Я пытаюсь изменить порядок, в котором появляются элементы легенды. Я потратил на это около часа, безрезультатно.
вот пример установки:
library(ggplot2)
set.seed(0)
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10'))
и вот одна из многих вещей, которые я пробовал:
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a, order = as.numeric(a)))
(моя наивная надежда, конечно, заключалась в том, что элементы легенды будут показаны в числовом порядке: 1, 3, 10.)
2 ответов
ggplot
обычно будет заказывать ваши значения факторов в соответствии с levels()
фактора. Вы лучше всего убедитесь, что это порядок, который вы хотите, иначе вы будете бороться с большим количеством функций в R, но вы можете вручную изменить это, манипулируя цветовой шкалой:
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a)) +
scale_color_discrete(breaks=c("1","3","10"))
порядок меток условных обозначений может быть изменен путем переупорядочивания и изменения значений в столбце a
к-фактор: d$a <- factor(d$a, levels = d$a)
таким образом, ваш код будет выглядеть следующим образом
library(ggplot2)
set.seed(0)
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10'))
d$a <- factor(d$a, levels = d$a)
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a))
обратите внимание, чем сейчас в легенде: 1 красный, 3 зеленый и 10 синий цвет