Вы можете использовать следующий синтаксис, чтобы изменить порядок элементов в легенде ggplot2 :
scale_fill_discrete(breaks=c('item4', 'item2', 'item1', 'item3', ...)
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: изменение порядка элементов в легенде ggplot2
Предположим, мы создаем следующий график в ggplot2, который отображает несколько блочных диаграмм на одном графике:
library (ggplot2)
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
points=c(6, 8, 13, 16, 10, 14, 19, 22, 14, 18, 24, 26))
#create multiple boxplots to visualize points scored by team
ggplot(data=df, aes (x=team, y=points, fill=team)) +
geom_boxplot()

Чтобы изменить порядок элементов в легенде, мы можем использовать функцию scale_fill_discrete() следующим образом:
library (ggplot2)
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
points=c(6, 8, 13, 16, 10, 14, 19, 22, 14, 18, 24, 26))
#create multiple boxplots to visualize points scored by team
ggplot(data=df, aes (x=team, y=points, fill=team)) +
geom_boxplot() +
scale_fill_discrete(breaks=c('B', 'C', 'A'))

Обратите внимание, что порядок элементов изменился с: A, B, C на B, C, A.
Мы также можем использовать аргумент labels для изменения конкретных меток, используемых для элементов в легенде:
library (ggplot2)
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
points=c(6, 8, 13, 16, 10, 14, 19, 22, 14, 18, 24, 26))
#create multiple boxplots to visualize points scored by team
ggplot(data=df, aes (x=team, y=points, fill=team)) +
geom_boxplot() +
scale_fill_discrete(breaks=c('B', 'C', 'A'),
labels=c('B Team', 'C Team', 'A Team'))

Обратите внимание, что метки легенды изменились.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в ggplot2:
Как удалить легенду в ggplot2
Как изменить положение легенды в ggplot2
Как изменить размер легенды в ggplot2
Как изменить заголовок легенды в ggplot2