vlambda博客
学习文章列表

R语言实战——1.3图形初阶


图形初阶

本篇推送将介绍如何用R绘图,话不多说,直接开搞!

01

图形参数

符号和线条

R语言实战——1.3图形初阶
R语言实战——1.3图形初阶
R语言实战——1.3图形初阶


颜色

R语言实战——1.3图形初阶

       在R中,可以通过颜色下标、颜色名称、十六进制的颜色值、RGB值或HSV值来指定颜色。举例来说,col=1、col="white"、col="#FFFFFF"、col=rgb(1,1,1)和col=hsv(0,0,1)都是表示白色的等价方式。函数rgb()可基于红-绿-蓝三色值生成颜色,而hsv()则基于色相-饱和度-亮度值来生成颜色。

       R中也有多种用于创建连续型颜色向量的函数,包括rainbow()、heat.colors()、terrain.colors()、topo.colors()以及cm.colors()。举例来说,rainbow(10)可以生成10种连续的“彩虹型”颜色。

        对于创建吸引人的颜色配对,RColorBrewer特别受到欢迎。注意在第一次使用它之前先进行下载(install.packages("RColorBrewer"))。安装之后,使用函数brewer.pal(n, name)来创建一个颜色值的向量。比如说,以下代码:

library(RColorBrewer)

n<-7

mycolors<-brewer.pal(n,"Set1")

barplot(rep(1,n), col=mycolors)

R语言实战——1.3图形初阶

       从Set1调色板中抽取了7种用十六进制表示的颜色并返回一个向量。若要得到所有可选调色板的列表,输入brewer.pal.info;或者输入display.brewer.all()从而在一个显示输出中产生每个调色板的图形。


文本属性

R语言实战——1.3图形初阶
R语言实战——1.3图形初阶
R语言实战——1.3图形初阶

通过par()设定的参数对两幅图都有效。

02

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

标题

       使用title()函数为图形添加标题和坐标轴标签,调用格式为:

title(main="main title", sub="subtitle",      xlab="x-axis label", ylab="y-axis label")

坐标轴

      使用函数axis()来创建自定义的坐标轴,而非使用R中的默认坐标轴,其格式为:

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

R语言实战——1.3图形初阶

       创建自定义坐标轴时,你应当禁用高级绘图函数自动生成的坐标轴。参数axes=FALSE将禁用全部坐标轴(包括坐标轴框架线,除非你添加了参数frame.plot=TRUE)。参数xaxt="n"和yaxt="n"将分别禁用 X 轴或 Y 轴(会留下框架线,只是去除了刻度)。

参考线

       函数abline()可以用来为图形添加参考线,其使用格式为:

abline(h=yvalues, v=xvalues)

       函数abline()中也可以指定其他图形参数(如线条类型、颜色和宽度)。

图例

       当图形中包含的数据不止一组时,图例可以帮助你辨别出每个条形、扇形区域或折线各代表哪一类数据,可以使用函数legend()来添加图例:

legend(location, title, legend, ...)

R语言实战——1.3图形初阶

文本标注

       通过函数text()和mtext()将文本添加到图形上。text()可向绘图区域内部添加文本,而mtext()则向图形的四个边界之一添加文本,使用格式分别为:

text(location, "text to place", pos, ...)

mtext("text to place", side, line=n, ...)

R语言实战——1.3图形初阶

数学标注

       使用类似于TeX中的写法为图形添加数学符号和公式。请参阅help(plotmath)以获得更多细节和示例。要即时看效果,可以尝试执行demo(plotmath)。函数plotmath()可以为图形主体或边界上的标题、坐标轴名称或文本标注添加数学符号。

R语言实战——1.3图形初阶

03

图形的组合

par()函数

       在par()函数中使用图形参数mfrow=c(nrows, ncols)来创建按行填充的、行数为nrows、列数为ncols的图形矩阵。另外,可以使用mfcol=c(nrows, ncols)按列填充矩阵。

示例:

R语言实战——1.3图形初阶
R语言实战——1.3图形初阶


layout()函数

       函数layout()的调用形式为layout(mat),其中的mat是一个矩阵,它指定了所要组合的多个图形的所在位置。为了更精确地控制每幅图形的大小,可以有选择地在layout()函数中使用widths=和heights=两个参数。其形式为:

widths = 各列宽度值组成的一个向量

heights = 各行高度值组成的一个向量

       相对宽度可以直接通过数值指定,绝对宽度(以厘米为单位)可以通过函数lcm()来指定。


layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE),       widths=c(3, 1), heights=c(1, 2))


      若此时只有三幅图,将一幅图形置于第1行,两幅图形置于第2行。但第1行中图形的高度是第2行中图形高度的二分之一,右下角图形的宽度是左下角图形宽度的三分之一。


       在前一章中,我们讨论了一系列输入或导入数据到R中的方法。遗憾的是,现实数据极少以直接可用的格式出现。下一章,我们将关注如何将数据转换或修改为更有助于分析的形式。

在看不好意思,那就点个赞吧