每天学习一点R:13.绘图后修改
绘图后修改
通常我们使用基本的绘图命令得到的基本图像并不能让我们满意,这就需要在基本图形的基础上对各个元素进行修改,主要涉及的内容基本上就是坐标轴、文字、图例或添加指示符号等等,今天主要介绍这些元素修改的命令及其中个参数的意义,大家可以收藏一波方便以后查找,在接下来的推文中会以实例的方式详细介绍各个命令的使用情况和使用方法。
坐标轴
axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,……)
各参数意义:
side,一个整数,表示在图形的哪边绘制坐标轴,1、2、3、4分别对应下、左、上、右;
at,一个数值型向量,表示需要绘制刻度线的位置;
labels,标志至于刻度线旁边的文字标签;
pos,坐标轴与另一个坐标轴相交位置的值;
lty,坐标轴的线型
col,轴和刻度线的颜色
las,标签是水平(=0)还是垂直(=2)于坐标轴;
tck,刻度线的长度,以相对于绘图区域大小的分数表示。
axis()函数只能设置一种刻度线,但有时我们希望同时展示主要和次要两种刻度线,此时可以使用Hmis包的minor.tick()函数。
library(Hmisc)
#载入包
minor.tick(nx=n,ny=n,tick.ration=n)
各参数意义:nx和ny分别指定x和y轴每两条主刻度线之间通过次刻度线划分得到的区域个数;
tick..ration表示次要刻度线相对于主要刻度线的大小比例。
文字
标题修改
title(main = NULL, sub = NULL, xlab = NULL,
ylab = NULL, line = NA, outer = FALSE, ...)
各参数意义:
main为主标题的内容;
sub为副标题的内容;
xlab和ylab为x和y轴标题的内容;
line定义标题绘制与默认位置的距离;
outer定义是否标题绘制在图像边缘的外侧;
轴标题的修改
有时我们可能只希望修改x或y轴中的某一个,或者在绘制双横/纵轴图像时在图像上方或右侧添加轴标题,此时可以使用mtext()函数。
mtext(text, side = 3, line = 0, outer = FALSE,
at = NA, adj = NA, padj = NA, cex = NA, col = NA,
font = NA, ...)
各参数意义:
text为需要添加的文字;
side文字添加的位置,1为底部、2为左侧,3为右侧,4为顶部;
line文字距离边界的距离,outer定义是否使用外部边界;
at定义文字添加的坐标,adj文字的对齐方式;
padj定义文字的阅读方向;
cex、col和font定义文字的大小、颜色和字号。
在指定位置添加文字
text(x, y = NULL, labels = seq_along(x),
adj = NULL, pos = NULL, offset = 0.5,
vfont = NULL, cex = 1, col = NULL,
font = NULL, ...)
各参数意义:
x和y定义添加文字的x和y轴坐标;
labels定义添加的文字;
adj定义标签的对齐方式,0为左对齐,1为右对齐;
pos应用数字调整文字相对于绘图坐标的位置;
offset如果pos被指定,此命令指定标签字符的宽度;
vfont定义文字标签的字体;
cex、col和font分别为文字的大小、颜色和字号。
图例
在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和center中的一个;
legend为在图例中显示的内容,可以是字符串,也可以是长度大于1的expression向量;
fill定义是否在图例的文字旁边显示一个颜色填充的方块,根据图形中的颜色来区分不同的内容;
col定义图例中点或线的颜色;
border定义颜色填充方块的轮廓颜色;
lty和lwd定义图例中线的线型和宽度;
pch定义图例中的symbols,与图像中的symbols对应;
angle定义图例中阴影线的角度;
density定义隐形线的密度
bty定义图例边框的类型,参数为o或n;
bg定义图例的背景颜色,只有在bty为o时可用;
box.lwd、box.lty、box.col定义图例边框的宽度、线型和颜色,只有在bty为o时可用;
pt.bg定义图例中点的颜色;
cex、pt.cex和title.cex调整图例中文字、点和标题的大小;
pt.lwd定义图例中点的宽度;
xjust和yjust调整图例相对于插入位点的位置,0表示在插入位点左边,0.5表示居中,1表示在插入位点右边;
x.intersp和y.intersp调整图例文字和图标的间距,类似于调整表格中单元格的高度和宽度,从而改变各单元格中字符的间距,调整此参数时,图标和文字一起移动;
adj调整图例的文字对齐方式,0为左对齐,0.5为居中,1为右对齐,调整此参数时,图标不动,文字移动;
text.width、text.col和text.font调整图例中文字对于x坐标的宽度、文字的颜色和文字的字型;
merge如果为TRUE,则将点和线合并,但是并不进行颜色填充,针对散点图+折线图形式;
trace定义是否显示图例的计算过程;
plot定义是否将图例绘制出来;
ncol定义图例的列数,默认为1;
horiz定义图例是否水平显示;
title设定图例的标题;
inset定义图例距离绘图区边缘的距离;
xpd定义是否可以在绘图区域外添加图例;
title.col定义标题的颜色;
title.adj调整标题的水平位置;
seg.len定义图例中线的长度。
指示符号
线段
R中使用segments()命令绘制线段。
segments(x0, y0, x1 = x0, y1 = y0,
col = par("fg"), lty = par("lty"),
lwd = par("lwd"), ...)
各参数意义:
x0、y0定义线段的起始位置;
x1、y1定义线段的终点位置;
col定义线段的颜色;
lty定义线段的线型;
lwd定义线段的线宽。
箭头
R中使用arrows()命令绘制箭头符号。
arrows(x0, y0, x1 = x0, y1 = y0,
length = 0.25, angle = 30, code = 2,
col = par("fg"), lty = par("lty"),
lwd = par("lwd"), ...)
各参数意义:
x0、y0定义线段的起始位置;
x1、y1定义线段的终点位置;
length箭头头部位置两条边的长度;
angle箭头头部位置轴与边的夹角;
code定义箭头的类型;
col定义线段的颜色;
lty定义线段的线型;
lwd定义线段的线宽。
矩形框
R中使用rect()命令绘制矩形框。
rect(xleft, ybottom, xright, ytop,
density = NULL, angle = 45, col = NA,
border = NULL, lty = par("lty"),
lwd = par("lwd"), ...)
各参数意义:
xleft、ybottom、xright、ytop定义举行4条边的位置;
density定义矩形中是否填充阴影线,用数字定义阴影线的密度;
angle定义阴影线的角度;
col定义举行的填充颜色;
border定义举行的边框颜色;
lty定义矩形边框的线型;
lwd定义矩形边框的线宽。
多边形
R中使用polygon()命令绘制多边形。
polygon(x, y = NULL, density = NULL,
angle = 45, border = NULL, col = NA,
lty = par("lty"), ..., fillOddEven = FALSE)
各参数意义:
x和y为绘图所需数据的x和y坐标;
density为阴影线的密度;
angle为阴影线的角度;
border为边框的颜色;
col为填充的颜色;
lty为线型。
椭圆
R中可以使用plotrix包中的draw.ellipse()函数绘制椭圆。
draw.ellipse(x, y, a = 1, b = 1,
angle = 0, segment = c(0, 360),
arc.only = TRUE, deg = TRUE,
nv = 100, border = NULL, col = NA,
lty = 1, lwd = 1, ...)
各参数意义:
x和y为绘图数据的x和y轴坐标或绘图数据矩阵;
a和b分别为椭圆长轴和短轴的半径;
angle为椭圆旋转的角度;
segment弧形开始和结束的位置;
arc.only是绘制弧形还是椭圆;
deg定义角度的单位,TRUE代表角度,FALSE代表弧度;
nv为形成椭圆的线由多少个边构成;
border为椭圆边框的颜色;
col为填充颜色;
lty为线型;
lwd为线宽。