一幅图解决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绘图图例的关键参数。

一幅图解决R语言绘制图例的各种问题-LMLPHP

命令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,分为两列。

05-11 13:50