Как создать горизонтальную легенду в base r (2 метода)
Для создания горизонтальной легенды на базовом графике R можно использовать следующие методы:
Способ 1: используйте горизонтальный аргумент
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '), horiz= TRUE , inset=c(0, -.1), xpd= TRUE )
В этом конкретном примере под графиком создается горизонтальная легенда, в которой каждый элемент легенды находится на одной линии.
Способ 2. Используйте аргумент ncol.
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '), ncol=3, inset=c(0, -.15), xpd= TRUE )
В этом конкретном примере под графиком создается горизонтальная легенда с тремя столбцами.
Аргумент inset(x, y) управляет расположением легенды. Используя отрицательные значения для значения y, мы можем вытолкнуть легенду за пределы графика.
Аргумент xpd=TRUE позволяет нам разместить легенду за пределами графика, оставаясь при этом видимой в области графика.
Следующие примеры показывают, как использовать каждый метод на практике.
Пример 1: используйте аргумент horiz для создания горизонтальной легенды в базе R.
Следующий код показывает, как использовать аргумент horiz=TRUE в функции Legend() для создания горизонтальной легенды внизу базового графика R:
#create vector of values
data <- c(4, 10, 7, 5, 4, 3)
#specify fill colors to use
fill_cols <- c(' red ', ' pink ', ' blue ', ' green ', ' purple ', ' brown ')
#create bar plot to visualize values in vector
barplot(data, col=fill_cols)
#add legend to bottom of plot
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '),
horiz= TRUE , inset=c(0, -.1), xpd= TRUE )
Обратите внимание, что горизонтальная легенда была создана и размещена внизу графика.
Не стесняйтесь экспериментировать со значениями аргумента inset , чтобы также настроить расположение легенды.
Например, мы можем сделать значение y вставленного аргумента еще более отрицательным, чтобы опустить легенду еще ниже:
#create vector of values
data <- c(4, 10, 7, 5, 4, 3)
#specify fill colors to use
fill_cols <- c(' red ', ' pink ', ' blue ', ' green ', ' purple ', ' brown ')
#create bar plot to visualize values in vector
barplot(data, col=fill_cols)
#add legend to bottom of plot
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '),
horiz= TRUE , inset=c(0, -.2), xpd= TRUE )
Обратите внимание, что горизонтальная легенда сдвинута еще ниже графика.
Пример 2: используйте аргумент ncol для создания горизонтальной легенды в базе R.
Следующий код показывает, как использовать аргумент ncol в функции Legend() для создания горизонтальной легенды с тремя столбцами внизу базового графика R:
#create vector of values
data <- c(4, 10, 7, 5, 4, 3)
#specify fill colors to use
fill_cols <- c(' red ', ' pink ', ' blue ', ' green ', ' purple ', ' brown ')
#create bar plot to visualize values in vector
barplot(data, col=fill_cols)
#add legend to bottom of plot
legend(' bottom ', fill=fill_cols, legend=c(' A ', ' B ', ' C ', ' D ', ' E ', ' F '),
ncol=3, inset=c(0, -.15), xpd= TRUE )
Обратите внимание, что была создана горизонтальная легенда из трех столбцов, которая размещена внизу графика.
Не стесняйтесь изменять значение аргумента ncol , чтобы создать легенду с другим количеством столбцов.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как изменить размер легенды на графике Base R
Как нарисовать легенду вне графика в R
Как изменить положение легенды на базовых графиках R