多掌握几个图例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,分为两列。
命令10
修改了x.intersp的数值,图例中所有的 "图标"和 文字相对水平距离同时扩大,y.intersp 对应垂直距离。而 adj=c(0,0.5) 是 控制单个图标和其对应的文字之间的距离。 adj默认值为c(0,0.5),当adj向量中第二个数值变化时,图例中的文字也开始上下移动,而当adj的第一个参数变化时,图例中文字和图片间的水平距离发生变化。
R语言绘图legend()参数详解
legend(x, y = NULL, legend, fill = NULL, col = par("col"),
border = "black", lty, lwd, pch,
angle = 45, density = NULL, bty = "o", bg = par("bg"),
box.lwd = par("lwd"), box.lty = par("lty"), box.col = par("fg"),
pt.bg = NA, cex = 1, pt.cex = cex, pt.lwd = lwd,
xjust = 0, yjust = 1, x.intersp = 1, y.intersp = 1,
adj = c(0, 0.5), text.width = NULL, text.col = par("col"),
text.font = NULL, merge = do.lines && has.pch, trace = FALSE,
plot = TRUE, ncol = 1, horiz = FALSE, title = NULL,
inset = 0, xpd, title.col = text.col, title.adj = 0.5,
seg.len = 2)
x, y | X,y用于定位图例,也可用单键词"bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right" and "center" |
legend | 字符或表达式向量 |
fill | 用特定的颜色进行填充 |
col | 图例中出现的点或线的颜色 |
border | 当fill = 参数存在的情况下,填充色的边框 |
lty, lwd | 图例中线的类型与宽度 |
pch | 点的类型 |
angle | 阴影的角度 |
density | 阴影线的密度 |
bty | 图例框是否画出,o为画出,默认为n不画出 |
bg | bty != "n"时,图例的背景色 |
box.lty, box.lwd, box.col | bty = "o"时,图例框的类型,box.lty决定是否为虚线,box.lwd决定粗线,box.col决定颜色 |
pt.bg | 点的背景色 |
cex | 字符大小 |
pt.cex | 点的大小 |
pt.lwd | 点的边缘的线宽 |
x.intersp | 图例中文字离图片的水平距离 |
y.intersp | 图例中文字离图片的垂直距离 |
adj | 图例中字体的相对位置 |
text.width | 图例字体所占的宽度 |
text.col | 图例字体的颜色 |
text.font | 图例字体 |
merge | logical, if TRUE,合并点与线,但不填充图例框,默认为TRUE |
trace | logical; if TRUE显示图例信息. |
plot | logical. If FALSE不画出图例 |
ncol | 图例中分类的列数 |
horiz | logical; if TRUE,水平放置图例 |
title | 给图例加标题 |
inset | 当图例用关键词设置位置后,inset = 分数,可以设置其相对位置 |
xpd | xpd=FALSE,即不允许在作图区域外作图,改为TRUE即可,与par()参数配合使用。 |
title.col | 标题颜色 |
title.adj | 图例标题的相对位置,0.5为默认,在中间。0最左,1为最右。 |
seg.len | lty 与lwd的线长,长度单位为字符宽度 |
R 颜色板
例:legend("topleft",40,legendList,col=c("dodgerblue3","limegreen","lightsalmon4","lightpink","firebrick2"),
pch=rep(20,lenVecId),lty=rep(1,lenVecId),bty="n",text.font=1.0,cex = 1.5,lwd=2, ncol = 2);