本文首發(fā)于微信公眾號“生信補給站”,,
學習了ggplot2|詳解八大基本繪圖要素后,,就可以根據(jù)自己的需要繪制圖形,。前面也給出了一些ggplot2繪制生信分析基本圖形的例子
本文將介紹一些對legend的細節(jié)操作來完成圖形的“精雕細琢”,。
載入R包和數(shù)據(jù)
mtcars數(shù)據(jù)集作為示例數(shù)據(jù)
library(ggplot2)#查看數(shù)據(jù)集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
設置 legend position
使用 theme() 參數(shù)設置legend位置
# 可選參數(shù)為“l(fā)eft”,“top”, “right”, “bottom”.
p + theme(legend.position="bottom")
# 數(shù)值向量 c(x,y) 調控位置
p + theme(legend.position = c(0.8, 0.2))
更改legend 的title ,, font styles
# legend titlep + theme(legend.title = element_text(colour="blue", size=10, face="bold"))# legend labelsp + theme(legend.text = element_text(colour="blue", size=10, face="bold"))
設置 legend 背景色
#fill設置legend box背景色,,colour設置邊框顏色p + theme(legend.background = element_rect(fill="lightblue", size=0.5, linetype="solid",
colour ="darkblue"))
設置legend items順序
scale_x_discrete自定義設置順序
p + scale_x_discrete(limits=c("3", "5", "4"))
去除legend
# 去除legend titlep + theme(legend.title = element_blank())# 去除整個legendp + theme(legend.position='none')
guides 設置specific aesthetic
使用guides()參數(shù)來設置或移除特定的美學映射(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的位置
# 更改 legend positionp +theme(legend.position="bottom")# Horizontal legend boxp +theme(legend.position="bottom", legend.box = "")
設置multiple guides順序
使用 guide_legend() 參數(shù):
p+guides(color = guide_legend(order=1), size = guide_legend(order=2), shape = guide_legend(order=3))
去除particular aesthetic
通過設置FALSE,,可不展示對應的legend
p+guides(color = FALSE)
也可以使用scale_xx.函數(shù)去掉特定的legend
# Remove legend for the point shapep+scale_shape(guide=FALSE)# Remove legend for sizep +scale_size(guide=FALSE)# Remove legend for colorp + scale_color_manual(values=c('#999999','#E69F00','#56B4E9'), guide=FALSE)
通過以上參數(shù)的設置即完成對所繪制圖形的legend的細節(jié)修改,得到自己所需要的圖形,。
更多關于生信,,R,Python的內容請關注小號“生信補給站”,,謝謝 ,!