本文首發於微信公衆號「生信補給站」,https://mp.weixin.qq.com/s/A5nqo6qnlt_5kF3_GIrjIA微信
mtcars數據集做爲示例數據markdown
library(ggplot2)#查看數據集 head(mtcars) # 將cyl gear變量轉爲因子變量 mtcars$cyl<-as.factor(mtcars$cyl) mtcars$gear <- as.factor(mtcars$gear)
#gear爲橫座標,對mpg作箱線圖,gear填充顏色 p <- ggplot(mtcars, aes(x=gear, y=mpg, fill=gear)) + geom_boxplot() p
使用 theme() 參數設置legend位置app
# 可選參數爲「left」,「top」, 「right」, 「bottom」. p + theme(legend.position="bottom")
# 數值向量 c(x,y) 調控位置 p + theme(legend.position = c(0.8, 0.2))
# legend title p + theme(legend.title = element_text(colour="blue", size=10, face="bold")) # legend labels p + theme(legend.text = element_text(colour="blue", size=10, face="bold"))
#fill設置legend box背景色,colour設置邊框顏色 p + theme(legend.background = element_rect(fill="lightblue", size=0.5, linetype="solid", colour ="darkblue"))
scale_x_discrete自定義設置順序ide
p + scale_x_discrete(limits=c("3", "5", "4"))
# 去除legend title p + theme(legend.title = element_blank()) # 去除整個legend p + theme(legend.position='none')
使用guides()參數來設置或移除特定的美學映射(fill, color, size, shape等).
因子變量cyl和gear映射爲點圖的顏色和形狀,qsec決定點的大小。函數
p <- ggplot(data = mtcars, aes(x=mpg, y=wt, color=cyl, size=qsec, shape=gear))+ geom_point()
# 不設定specific aesthetic時候
p
# 更改 legend position p +theme(legend.position="bottom") # Horizontal legend box p +theme(legend.position="bottom", legend.box = "")
使用 guide_legend() 參數:學習
p+guides(color = guide_legend(order=1), size = guide_legend(order=2), shape = guide_legend(order=3))
經過設置FALSE,可不展現對應的legendui
p+guides(color = FALSE)
也能夠使用scale_xx.函數去掉特定的legendspa
# Remove legend for the point shape p+scale_shape(guide=FALSE) # Remove legend for size p +scale_size(guide=FALSE) # Remove legend for color p + scale_color_manual(values=c('#999999','#E69F00','#56B4E9'), guide=FALSE)
經過以上參數的設置即完成對所繪製圖形的legend的細節修改,獲得本身所須要的圖形。3d