赞
踩
今天总结一下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)
参数比较多,不过可以大体上分为以下几种功能:
(1)位置坐标参数:
x和y代表图例位置的横纵坐标,除了输入精确的xy坐标,只在x参数中输入"left"、"right"、"top"、"bottom"、"topleft"、" topright"、"bottomleft"、" bottomright"八个单词,可以实现图例在图形左、右、上、下、左上、右上、左下、右下的快速布局。
(2)文本参数:
legend表示每一条图例的文字说明;text.font表示字体,即粗体、斜体;title表示图例整体的标题,text.width是文本的宽度。
(3)颜色参数:
col是点或线的颜色,fill是方块的填充颜色,text.col是图例文字的颜色,title.col是标题的颜色,bg是图例的背景色,pt.bg是点的填充色。
(4)形状参数
lty表示线的类型,pch表示点的类型,angle表示阴影线角度,density表示阴影线密度。
(5)大小参数
cex是整体的大小,pt.cex是点的大小,pt.lwd是点的轮廓线粗细,lwd表示线的粗细,seg.len表示线的长短。
(6)边框参数
bty是边框的类型,只提供2种类型,"o"是有边框,"n"是无边框;x.intersp是边框的宽度, y.intersp是边框的高度。
(7)位置微调参数
xjust和yjust是图例实际位置相对输入的xy坐标点的位置。X和y是图例中心的位置,当xjust = 0.5时,表明图例中心恰好在x点,如果xjust = 0,则表示图例中心位于x点偏左0.5处,如果xjust = 1,则表示图例中心位于x点偏右0.5处;yjust是对垂直位置的微调,用法相同;adj是对文本水平位置的微调,用法相同。
(8)其他
merge如果为True,表示当有点和线同时出现是,点和线在图形上合并展示,即点画在线上。
ncol是图例的列数,可以理解成每行写几个,默认为1。
horiz控制图例横排还是竖排,不是文字横着写还是竖着写,而是当图例有多个时是排成一行还是排成一列。
- x <- seq(-2, 2, 0.1)
- y1 <- x^2
- y2 <- x^3
- par(mfrow = c(2, 2), mar = c(4, 4, 1, 1))
- ## 图例放在上边,有边框
- plot(x, y1, type = 'l', col= 'coral', ann = F)
- legend(x = 'top',
- legend = expression(y == x^2),
- lty = 1,
- col = 'coral')
- ## 图例放在左边,有边框
- plot(x, y1, type = 'l', col= 'coral', ann = F)
- legend(x = 'left',
- legend = expression(y == x^2),
- lty = 1,
- col = 'coral')
- ## 图例放在左上,无边框
- plot(1, 1, xlim = c(-2, 2), ylim = c(-8, 8), type = 'n', ann = F, las = 1)
- lines(x, y1, lty = 1, col = 'coral')
- lines(x, y2, lty = 1, col = 'skyblue')
- legend(x = 'topleft',
- legend = c(expression(y == x^2), expression(y == x^3)),
- lty = 1,
- col = c('coral', 'skyblue'),
- bty = 'n')
- ## 图例放在右上,无边框
- plot(1, 1, xlim = c(-2, 2), ylim = c(-8, 8), type = 'n', ann = F, las = 1)
- lines(x, y1, lty = 1, col = 'coral')
- lines(x, y2, lty = 1, col = 'skyblue')
- legend(x = 'topright',
- legend = c(expression(y == x^2), expression(y == x^3)),
- lty = 1,
- col = c('coral', 'skyblue'),
- bty = 'n',
- horiz = T)
可以看到有边框时,图例的整个区域覆盖住了底层图形,无边框时没有覆盖底层图形,只是图例的文字印在了底层图形上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。