【R】调整ggplot图例大小

匿名 (未验证) 提交于 2019-12-02 23:57:01

图例太多时,会挤压正图,显得正图展示区域很小,这时有必要缩小图例。

################# # 减小ggplot图例 #################  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)) p  # Overwrite given size (2) to 0.5 (super small) p <- p + guides(shape = guide_legend(override.aes = list(size = 0.5))) p  p <- p + guides(color = guide_legend(override.aes = list(size = 0.5))) p  p <- p + theme(legend.title = element_text(size = 3),                 legend.text = element_text(size = 3)) p  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)   ################## # 折叠图例文本 ##################  a <- (1:10) b <- c(1,1.5,2,4,5,5.3,7,9,9.5,9.8) places = c("Birmingham","Chester-le-street","Cambridge", "Newcastle-upon-Tyne","Peterborough","Cambridge", "Newcastle-upon-Tyne","Peterborough","Liverpool","Stratford-upon-Avon") df1 = data.frame(a,b,places)  library(ggplot2) p <- ggplot(df1, aes(x=a, y=b)) + geom_point(aes(colour = places), size=3) p  #指定图例列数 library(scales) p + guides(colour = guide_legend(nrow = 2)) p   ##或换行 df1$places<-sub("-", "- \n ", df1$places)   p = ggplot(df1, aes(x=a, y=b)) + geom_point(aes(colour = places), size=3) p
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!