文章目录
  1. 图形初步
    1. 1、基本图形
    2. 2、符号与线条
    3. 3、颜色
    4. 4、文本属性
    5. 5、图形尺寸
    6. 6、自定义文本坐标轴和图例
      1. 1、自定义坐标轴
      2. 2、次要刻度线
      3. 3、参考线
      4. 4、图例
      5. 5、文本标注
      6. 6、数学标注
    7. 7、 图形组合

图形初步

1、基本图形

plot(o_data,type=”b”,main=”主标题”,sub=”子标题”,xlab=”年龄”,ylab=”周长”)


2、符号与线条

参数 含义
pch 指定绘制点时使用的符号
cex 指定符号的大小。cex是一个数值,表示绘图符号相对于默认大小的缩放倍数。默认大小为1, 1.5表示放大为默认值的1.5倍, 0.5表示缩小为默认值的50%,等等
lty 指定线条类型
lwd 指定线条宽度。 lwd是以默认值的相对大小来表示的(默认值为1)。例如, lwd=2将生成一条两倍于默认宽度的线条


1
plot(o_data,type="b", pch="8", cex=1, lty=6, lwd=2)

3、颜色

参数 含义
col 默认的绘图颜色。某些函数(如lines和pie)可以接受一个含有颜色值的向量并自动循环使用。 例如, 如果设定col=c(“red”, “blue”)并需要绘制三条线,则第一条线将为红色,第二条线为蓝色,第三条线又将为红色
col.axis 坐标轴刻度文字的颜色
col.lab 坐标轴标签(名称)的颜色
col.main 标题颜色
col.sub 副标题颜色
fg 图形的前景色
bg 图形的背景色

在R中,可以通过颜色下标、颜色名称、十六进制的颜色值、 RGB值或HSV值来指定颜色。举例来说, col=1、 col=”white”、 col=”#FFFFFF”、 col=rgb(1,1,1)和col=hsv(0,0,1)都是表示白色的等价方式。


rainbow(n) 生成n种连续的彩虹色
gran(0:n/n) 生成N阶灰度色

4、文本属性

用于指定文本大小的参数:

参数 含义
cex 表示相对于默认大小缩放倍数的数值。默认大小为1, 1.5表示放大为默认值的1.5倍, 0.5表示缩小为默认值的50%,等等
cex.axis 坐标轴刻度文字的缩放倍数。类似于cex
cex.lab 坐标轴标签(名称)的缩放倍数。类似于cex
cex.main 标题的缩放倍数。类似于cex
cex.sub 副标题的缩放倍数。类似于cex

用于指定字体族、字号和字样的参数:

参数 含义
font 整数。用于指定绘图使用的字体样式。 1=常规, 2=粗体, 3=斜体, 4=粗斜体,5=符号字体(以Adobe符号编码表示)
font.axis 坐标轴刻度文字的字体样式
font.lab 坐标轴标签(名称)的字体样式
font.main 标题的字体样式
font.sub 副标题的字体样式
ps 字体磅值(1磅约为1/72英寸)。文本的最终大小为 ps*cex
family 绘制文本时使用的字体族。标准的取值为serif (衬线)、 sans (无衬线)和mono(等宽)

在Windows中,可以通过函数windowsFont()来创建字体簇这类映射。在Mac上,请改用quartzFonts()。

使用时为par(family=A)

默认在Windows系统中,等宽字体映射为TT Courier New,衬线字体映射为TT Times New Roman,无衬线字体则映射为TT Arial(TT代表True Type)

若使用pdf输出图形,可以使用names(pdfFonts())找出那些字体可用,然后使用pdf(file="myplot.pdf", family="fontname")

5、图形尺寸

用于控制图形尺寸和边界大小的参数:

参数 含义
pin 以英寸表示的图形尺寸(宽和高)
mai 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英寸
mar 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英分(1/12英寸)。默认值为c(5, 4, 4, 2) + 0.1

par(pin=c(4,3),mar=c(5,0.5,5,0.5))

6、自定义文本坐标轴和图例

par()或者plot()中添加ann=FALSE来移除默认的标题和标签

1、自定义坐标轴

axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,…)

使用自定义坐标轴应当禁用自动坐标轴:axes=FALSE

  • 将禁用全部坐标轴(包括坐标轴框架线,除非你添加了参数frame.plot=TRUE)。参数xaxt=”n”和yaxt=”n”将分别禁用X轴或Y轴(会留下框架线,只是去除了刻度)。

坐标轴选项

参数 含义
side 一个整数,表示在图形的哪边绘制坐标轴(1=下, 2=左, 3=上, 4=右)
at 一个数值型向量,表示需要绘制刻度线的位置
labels 一个字符型向量,表示置于刻度线旁边的文字标签(如果为NULL,则将直接使用at中的值)
pos 坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)
lty 线条类型
col 线条和刻度线颜色
las 标签是否平行于(=0)或垂直于(=2)坐标轴
tck 刻度线的长度,以相对于绘图区域大小的分数表示(负值表示在图形外侧,正值表示在图形内侧, 0表示禁用刻度, 1表示绘制网格线);默认值为-0.01
1
2
3
4
5
6
7
8
9
10
11
#实例:
opar<-par(no.readonly = TRUE)
par(mar=c(5,4,4,8)+0.1)
plot(x,y,type="b",pch=21,col="red",yaxt="n",lty=3,ann=FALSE)
#yaxt=”n”表示不绘制Y轴刻度
lines(x,z,type="b",pch=22,col="blue",lty=2)
axis(2,at=x,labels=x,col.axis="red",las=2)
axis(4,at=z,labels=round(z,digits=2),col.axis="blue",las=2,cex.axis=0.7,tck=-.01)
mtext("y=10/x",side=4,line=3,cex.lab=1,las=2,col="blue")
title("Axes",xlab="X values", ylab="Y=X")
par(opar)

2、次要刻度线

使用包Hmisc 中的minor.tick()函数。

1
2
3
minor.tick(nx=n,ny=n,tick.ratio=n)
//nx、ny: X、Y轴两条主刻度线之间需要的区间个数
//tick.ratio: 次要刻度线相对于主刻度线的大小比例

3、参考线

abline()为图形添加参考线:
abline(h=yvalues,v=xvalues),其中也可以指定其他参数

4、图例

legend(location,title,legend,…)

参数 含义
location 有许多方式可以指定图例的位置。你可以直接给定图例左上角的x、 y坐标,也可以执行locator(1),然后通过鼠标单击给出图例的位置,还可以使用关键字bottom、 bottomleft、left、 topleft、 top、 topright、 right、 bottomright或center放置图例。如果你使用了以上某个关键字,那么可以同时使用参数inset=指定图例向图形内侧移动的小(以绘图区域大小的分数表示)
title 图例标题的字符串(可选)
legend 图例标签组成的字符型向量
其他选项。如果图例标示的是颜色不同的线条,需要指定col=加上颜色值组成的向量。如果图例标示的是符号不同的点,则需指定pch=加上符号的代码组成的向量。如果图例标示的是不同的线条宽度或线条类型,请使用lwd=或lty=加上宽度值或类型值组成的向量。要为图例创建颜色填充的盒形(常见于条形图、箱线图或饼图),需要使用参数fill=加上颜色值组成的向量
1
2
3
4
5
6
7
8
9
10
11
12
13
#实例:
dose<-c(20,30,40,45,60);
dA<-c(16,20,27,40,60);
dB<-c(15,18,25,31,40);
opar<-par(no.readonly = TRUE);
par(lwd=2,cex=1.5,font.lab=2);
plot(dose,dA,type="b",pch=15,lty=1,col="red",ylim=c(0,60),main="Drug A vs. Drug B",xlab="Drug Dosage", ylab="Drug REsponse");
lines(dose,dB,type="b",pch=17,lty=2,col="blue");
abline(h=c(30),lwd=1.5,lty=2,col="gray");
minor.tick(nx=3,ny=3,tick.ratio=0.5);
legend("topleft",inset=.05,title="Drug Type",c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","blue"));
#inset表示图例距离主图边框的距离百分比,当位置是用关键字表示时
par(opar)

5、文本标注

向绘图区域内部添加文本(同时可以绘制点):text(location, "text to place", pos,…)
向图形四个边界之一添加文本:mtext("text to place", side, line=n,…)

参数 含义
location 文本的位置参数。可为一对x,y坐标,也可通过指定location为locator(1)使用鼠标交互式地确定摆放位置
pos 文本相对于位置参数的方位。1=下,2=左,3=上,4=右。如果指定了pos,就可以同时指定参数offset=作为偏移量,以相对于单个字符宽度的比例表示
side 指定用来放置文本的边。 1=下, 2=左, 3=上, 4=右。你可以指定参数line=来内移或外移文本,随着值的增加,文本将外移。也可使用adj=0将文本向左下对齐,或使用adj=1右上对齐
1
2
3
4
5
#实例:
plot(dA,dose,pch=18,col="blue")
text(40,33,family="serif","TEST")
text(dA,dose,row.names(dA),cex=0.6,pos=4)
#从某个数据框的行名称中读取文本

6、数学标注

1
2
3
#在(1,1.9)点输出公式,hat(x)表示x拔
text(1,1.9,expression (hat(x)))
#expression中语句会解释为数学公式

7、 图形组合

  • par参数mfrow=c(nrows,ncols)来创建图形矩阵,mfrow表示按行排列,nfcol表示按列排列。

  • layout()函数可控制更多参数

1
2
3
4
5
6
7
8
9
10
#图形组合
attach(mtcars)
opar<-par(no.readonly = TRUE)
par(mfrow=c(2,2))
plot(wt,mpg,main="wt vs. mpg")
plot(wt,disp,main="wt vs. disp")
hist(wt,main="histogram of wt")
boxplot(wt, main="Boxplot of wt")
par(opar)
detach(mtcars)

1
2
3
4
5
6
7
8
#图形组合layout()
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE),widths=c(3,1),heights=c(1,2))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
#矩阵表示每个图排列的位置,1123表示第一行的两个位置均排列第一个图片,第二个图片在左下角位置,第三个图片在右下角位置,widths表示一行内不同图片的宽度比例,height为不同行的图高度比例

文章目录
  1. 图形初步
    1. 1、基本图形
    2. 2、符号与线条
    3. 3、颜色
    4. 4、文本属性
    5. 5、图形尺寸
    6. 6、自定义文本坐标轴和图例
      1. 1、自定义坐标轴
      2. 2、次要刻度线
      3. 3、参考线
      4. 4、图例
      5. 5、文本标注
      6. 6、数学标注
    7. 7、 图形组合