多掌握几个图例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语言 ggplot2图例 r语言legend图例位置_R语言 ggplot2图例

命令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);

R语言 ggplot2图例 r语言legend图例位置_背景色_02

R语言 ggplot2图例 r语言legend图例位置_背景色_03

R语言 ggplot2图例 r语言legend图例位置_多列_04

R语言 ggplot2图例 r语言legend图例位置_背景色_05

R语言 ggplot2图例 r语言legend图例位置_背景色_06

R语言 ggplot2图例 r语言legend图例位置_图例_07

R语言 ggplot2图例 r语言legend图例位置_图例_08

R语言 ggplot2图例 r语言legend图例位置_背景色_09

R语言 ggplot2图例 r语言legend图例位置_背景色_10

R语言 ggplot2图例 r语言legend图例位置_R语言 ggplot2图例_11

R语言 ggplot2图例 r语言legend图例位置_多列_12

R语言 ggplot2图例 r语言legend图例位置_R语言 ggplot2图例_13

R语言 ggplot2图例 r语言legend图例位置_图例_14

R语言 ggplot2图例 r语言legend图例位置_图例_15

R语言 ggplot2图例 r语言legend图例位置_R语言 ggplot2图例_16