Как изменить расстояние между элементами легенды в ggplot2


Вы можете использовать следующие методы, чтобы изменить расстояние между элементами легенды в ggplot2:

Способ 1: изменить горизонтальный интервал

 p+
  theme(legend. spacing . x = unit(1, ' cm '))

Способ 2: изменить вертикальный интервал

 p+
  theme(legend. spacing . y = unit(1, ' cm ')) +
  guides(fill = guide_legend(byrow = TRUE ))

Следующие примеры показывают, как использовать каждый метод на практике со следующим фреймом данных:

 #create data frame
df <- data. frame (team=c('Mavs', 'Heat', 'Nets', 'Lakers', 'Suns', 'Cavs'),
                 points=c(24, 20, 34, 39, 28, 29),
                 assists=c(5, 7, 6, 9, 12, 13))

#view data frame
df

    team points assists
1 Mavs 24 5
2 Heat 20 7
3 Nets 34 6
4 Lakers 39 9
5 Suns 28 12
6 Cavs 29 13

Пример 1. Изменение горизонтального расстояния между элементами легенды

Следующий код показывает, как создать диаграмму рассеяния в ggplot2 с горизонтальной легендой и интервалом по умолчанию:

 library (ggplot2)

#create scatterplot with default spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. position = ' bottom ')

Чтобы увеличить расстояние по горизонтали между элементами легенды, мы можем использовать аргумент Legend.spacing.x :

 library (ggplot2)

#create scatterplot with increased horizontal spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. position = ' bottom ',
        legend. spacing . x = unit(1, ' cm ')) 

ggplot2 увеличил горизонтальное расстояние между элементами легенды

Обратите внимание, что расстояние по горизонтали между элементами легенды увеличилось.

Чем больше значение, которое вы используете в функции unit() , тем больше расстояние между элементами.

Пример 2. Изменение вертикального расстояния между элементами подписи

Следующий код показывает, как создать диаграмму рассеяния в ggplot2 с вертикальной легендой и интервалом по умолчанию:

 library (ggplot2)

#create scatterplot with default spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 )

Чтобы увеличить вертикальное расстояние между элементами легенды, мы можем использовать аргумент Legend.spacing.y :

 library (ggplot2)

#create scatterplot with increased vertical spacing in legend
ggplot(df, aes(x=assists, y=points, color=team)) +
  geom_point(size= 3 ) +
  theme(legend. spacing . y = unit(1, ' cm ')) +
  guides(fill = guide_legend(byrow = TRUE )) 

ggplot2 увеличивает вертикальное расстояние между элементами легенды

Обратите внимание, что расстояние по вертикали между элементами легенды увеличилось.

Чем больше значение, которое вы используете в функции unit() , тем больше расстояние между элементами.

Примечание . Необходимо включить последнюю строку, в которой используется аргумент byrow = TRUE , иначе элементы легенды не будут расположены должным образом.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в ggplot2:

Как изменить заголовок легенды в ggplot2
Как изменить размер легенды в ggplot2
Как изменить положение легенды в ggplot2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *