Я знаю, что могу изменить порядок построения линий (то есть, какую линию построить 1-й, 2-й, 3-й, ...), изменив levels
коэффициента группировки.Однако при этом также переключает порядок легенды ggplot.
Как изменить порядок построения, но сохранить исходный порядок легенды?
Пример
С учетом следующего data.frame:
dat <- data.frame(id = rep(factor(letters[1:3]),3), y = c(1:3,3,2,1,1,3,1), x = rep(1:3,each = 3))
Я могу изменить порядок построения линий, изменив levels
id
фактор:
- например, путем переупорядочения уровней с использованием
dat$id = relevel(dat$id, 'c')
.
Используя следующий код ggplot
для исходных и relevel
'данных:
library(ggplot2)
#Create coloring objects to kep color consistent:
cols <- rep(1:3,3)
names(cols) <- letters[1:3]
#Create line graph:
ggplot(dat,aes(x=x,y=y,color=id)) + geom_line(size = 2) +
scale_colour_manual('id',values=cols) ##set custom static coloring
создает следующие 2 графика:
Слева: исходный порядок уровней для фактора id
|Справа: использование relevel
Обратите внимание, что строки были успешно переупорядочены: строка c
переходит от последней печати (и, следовательно, сверху) к печати первой (и, следовательно, снизу).
Однако , легенда также изменила порядок!
Как сохранить порядок легенды на левом графике, но изменить порядок печати строк, чтобы соответствоватьчто за правильный график?