一幅图解决R语言绘制图例的各种问题
用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,分为两列。