1、打开新的窗口:dev.new()(如果无前图在窗口内是不需要此命令的)
2、使用基本绘图命令plot():
参数
x:图中的点坐标.或者单一的绘图结构、诸如数据框、kde对象、一些函数等R对象;
y:图中y轴的点坐标,如果x是plot函数可以接受的数据结构,该参数是可选的;
其他图形参数:
图形种类;
- type:图形的种类:”p” :点、”l”:线、”b” :点线(点、线无连接);c:除去点的线图;o:串联点的线;h:直方图或者垂直线;s:阶梯线;S:其他阶梯线;n:只有坐标;
- pch:点的符号种类:可以使用0-25的数字;也可使用字符;取21-25时,bg=可以改变填充色;col=可以改变边界色;
- cex:字体或者符号大小;数值,取默认值的倍数;
- lty:线条的种类:1-6取值;
- lwd:线条的宽度;数值,取默认值的倍数;
标题及标签;
- main:图的标题
- sub:副标题;
- xlab:x轴标签;
- ylab:y轴标签;
比例:
- asp:y/x的值;
3、丰富图形的样式
- 颜色
可以使用数值、名称字符串、十六进制颜色代码、rgb颜色值、hsv颜色值等多种方式赋值;
常用的参数
- bg:背景色;
- fg:前景色;
- col:默认的绘图颜色;
- col.axis:坐标轴刻度颜色;col.lab:坐标轴标签颜色;col.main:标题颜色;col.sub:副标题颜色。
- 文本属性
前两者都可以向颜色一样分别对lab、axis、main、sub赋值;
- cex:文本大小;数值;
- font:字体样式;1-5取值;
- ps:字体磅值;
- family: 字体族
- 图形尺寸和边界尺寸
在par()函数中应用
- pin:以英寸表示的图形尺寸;是向量;
- mai:以数值向量表示边界大小;顺序是下左上右;单位是英寸;
- mar:与mai类似、单位是英分;
- 添加标题、坐标轴以及图例
也可以使用函数的方式添加标题、坐标轴以及图例:
标题:title()函数:可以添加main、sub、xlab、ylab参数以及其对应的颜色、大小、旋转角度、字体等参数;
坐标轴:创建自定义坐标轴时,应当禁用高级绘图函数自动生成的坐标轴。axis()函数:其参数较为复杂:
- side 一个整数,表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右) ;
- at 一个数值型向量,表示需要绘制刻度线的位置
- labels 一个字符型向量,表示置于刻度线旁边的文字标签(如果为NULL,则将直接使用at中的值)
- pos 坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)
- lty 线条类型
- col 线条和刻度线颜色
- las 标签是否平行于(=0)或垂直于(=2)坐标轴
- tck 刻度线的长度,以相对于绘图区域大小的分数表示(负值表示在图形外侧,正值表示在图形内侧,0表示禁用刻度,1表示绘制网格线);默认值为0.01
实际上还有的图形会要求次刻度线:需要使用Hmisc 包中的minor.tick()函数。
- 参考线
abline()函数
- 图例
legend()函数,参数:
- location:图例的位置;可以使用图例左上角的坐标来定义图例、也可以使用位置字符串来定义;bottom 、bottomleft、left、topleft、top 、topright 、right、bottomright 或center,如果使用位置字符串,还可以使用inset参数表示图例向图形内侧深入的比例;
- title 图例标题的字符串(可选)
- legend 图例标签组成的字符型向量;
- col:图例的颜色向量;
- lwd或lty:图例的线型或者线型宽度;
- pch:图例的符号代码向量;
- bty:指定盒子样式 ;
- bg:指定背景色的;
- cex:指定大小;
- text.col:指定文本颜色;
- horiz:等于TRUE将会水平放置图例,而不是垂直放置;
- 文本标注
text:向绘图区域内部添加文本;
mtext:向图形的四个边界之一添加文本;
除了文本值外,还可以添加其他参数:
- location:文本的位置坐标向量参数;
- pos:文本相对于位置参数的方位。1=下,2=左,3=上,4=右。如果指定了pos ,就可以同时指定参数 offset=作为偏移量,以相对于单个字符宽度的比例表示
- side 指定用来放置文本的边。1=下,2=左,3=上,4=右。你可以指定参数line=来内移或外移文本,随着值的增加,文本将外移。也可使用adj=0将文本向左下对齐,或使用adj=1右上对齐
还可以使用col、font、cex等文本参数。
text()还可以为图中点的标注添加文本,至少需要提供代表横坐标、纵坐标、标注文本的三个向量。
4、图形的组合与布局
使用par()或者layout()函数可以轻松的进行布局。
- par()
使用图形参数par(mfrow=c( nrows, ncols))
使用fig参数,可以将若干图形以任意排布方式组合到单幅图形中;参数fig=的取值是一个形如c(x1, x2, y1, y2)的数值向量;默认会新建一幅图形,所以在添加一幅图到一幅现有图形上时,请设定参数new=TRUE
- layout()
使用layout()可以更精细地控制图形布局;
- mat:其值是一个矩阵,指定了所要组合的图形所在的位置。
- widths = rep.int(1, ncol(mat)):各列宽度值组成的一个向量
- heights = rep.int(1, nrow(mat)):各行高度值组成的一个向量
- respect = FALSE
- byrow = TRUE
No comments:
Post a Comment