Как изменить порядок элементов в ggplot2 Legend


Вы можете использовать следующий синтаксис, чтобы изменить порядок элементов в легенде 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