Необходимо уменьшить размер элементов легенды (перезаписать переданные параметры size =2
) и уменьшить размер шрифта.
Создать пример графика с большой легендой
library(ggplot2)
p <- ggplot(mtcars,
aes(drat, mpg, color = factor(gear), shape = factor(vs))) +
geom_point(size = 2) +
theme_classic() +
theme(legend.position = c(0.1, 0.7))
Уменьшить размер элементов формы
# Overwrite given size (2) to 0.5 (super small)
p <- p + guides(shape = guide_legend(override.aes = list(size = 0.5)))
Уменьшение размера цветовых элементов
p <- p + guides(color = guide_legend(override.aes = list(size = 0.5)))
Уменьшение размера шрифта легенды
p <- p + theme(legend.title = element_text(size = 3),
legend.text = element_text(size = 3))
Вы также можете написать пользовательскую функцию для изменения ваших графиков:
addSmallLegend <- function(myPlot, pointSize = 0.5, textSize = 3, spaceLegend = 0.1) {
myPlot +
guides(shape = guide_legend(override.aes = list(size = pointSize)),
color = guide_legend(override.aes = list(size = pointSize))) +
theme(legend.title = element_text(size = textSize),
legend.text = element_text(size = textSize),
legend.key.size = unit(spaceLegend, "lines"))
}
# Apply on original plot
addSmallLegend(p)
Окончательный сюжет будет выглядеть так: