用R語言畫圖的小伙伴們有木有這樣的感受,“命令寫的很完整,運行沒有報錯,可圖例藏哪去了?”“圖畫的很美,怎么總是圖例不協調?”“啊~~啊,抓狂,圖例蓋住關鍵的點了。”“怎么才能讓圖例指哪站哪?” “圖例太長怎么辦”……
吐槽吐到累,不如多掌握幾個圖例(Legend)的軟肋,更好地利用R語言繪圖。
legend(x, y = NULL, legend, fill = NULL,col =, bty = "o",xjust = 0, yjust = 1, x.intersp = 1, y.intersp =1, adj = c(0, 0.5), text.width = NULL,xpd=TRUE)
Legend 定位
1. 如果圖例繪在制圖區外,必須提前保留繪制legend的空間。如par(mai=c(2,0.5,0.5,0.5)),圖例繪制在下方,所以留2,其余3個方向為0.5。
2. 圖例繪在制圖區外,必須設置參數xpd=TRUE,否則命令正確也不會出圖,因為默認xpd=F。
3. 圖例位置由x,y決定。legend 默認坐標為左上角的坐標(因為設定xjust=0,yjust=1),因此可以通過xjust,yjust來調節。xjust=1,yjust=0,即為右下角坐標。
Legend布局
1. 如果圖例數量太多,則設置多列(ncol=),如ncol=4,分為4列。
2. 如果圖例不加邊框,則設置bty=“n”,“o”為加邊框。
3. 圖標和文字的位置,可以通過x.intersp, y.intersp, adj,text.width等來調控。
x(y).intersp指圖標和文字之間的絕對距離adj指圖標和文字的相對距離text.
width指圖標和文字整體的寬度。
下面用一幅圖結合語句來給大家展示R繪圖圖例的關鍵參數。
命令1
設置繪圖參數mai=c(下,左,上,右)的邊界空間。
命令2
繪制柱狀圖。
命令3
選取繪圖區域左下角和右上角的坐標。
命令4
正常繪圖,設置xpd=T。xinch()、yinch(),分別表示沿x軸,y軸移動的距離,按絕對距離計算,或按坐標軸的數量級計算。fill=T,即顯示圖標(默認為矩形填充色)。fill=F的話可以設置pch,選擇圖標類型。數據分析培訓
命令5
設置adj=0.6,adj越接近於0,圖標與文字的相對距離越遠。
此參數作用於文字,圖標不動。
命令6
設置x.intersp=0.6,越接近於0,圖標與文字的絕對距離越近。以一側為標准,圖標文字均移動。
命令7
設置text.width=1.4,表示圖標和文字整體的寬度。當文字太長時可以調節此參數。
命令8
text.width與x.intersp結合使用,效果最好。
命令9
設置ncol=2,分為兩列。