R语言之plot绘图函数的使用&abline、lines函数当前图中添加一条直线

R有强大的绘图功能,plot()函数是一种常用的绘图函数,用其可以绘制散点图、曲线图等。

plot函数的语法格式

R语言中plot()函数的基本格式如下:

plot(x,y,...)

plot函数中,x和y分别表示所绘图形的横坐标和纵坐标;函数中的...为附加的参数。

plot函数默认的使用格式如下:

plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL, log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL, panel.last = NULL, asp = NA, ...)

主要参数的含义如下:

(1)type为一个字符的字符串,用于给定绘图的类型,可选的值如下:

"p":绘点(默认值);

"l":绘制线;

"b":同时绘制点和线;

"c":仅绘制参数"b"所示的线;

"o":同时绘制点和线,且线穿过点;

"h":绘制出点到横坐标轴的垂直线;

"s":绘制出阶梯图(先横后纵);

"S":绘制出阶梯图(先纵后竖);

"n":作空图。

(2)main参数 字符串,给出图形的标题;

(3)sub参数 字符串,给出图形的子标题;

(4)xlab 和 ylab参数 字符串,用于给出x轴和y轴的标签。

(5)xlim 和 ylim参数 都是二维向量,分别表示x轴和y轴的取值范围。

绘图的例子

(1)绘制简单的一个点

plot(10,10) #直接给出数据

结果如下图:

plot绘制简单的一个点,直接给出参数值

也可以使用标量的形式给出绘点的坐标:

#使用变量的情况x<-10y<-10plot(x,y)

绘图结果如下:

绘点时参数由变量给出

也可以同时绘制多个点,多个点的横坐标和纵坐标分别由参数x和y以向量的形式传递

#绘制多个点:本处两个点x<-c(20,30)y<-c(40,50)plot(x,y)

结果如下:

绘制多个个点

(2)使用参数l(注意这里不是数字1是小写的L)绘制一条直线

x<-c(20,30)y<-c(40,50)plot(x,y,'l')

结果如下:

绘制直线

(3)使用参数b:同时绘制点和线,线不穿过点

plot(x, y, 'b')

结果如下:

绘制直线,线不过点

(4)使用参数c:仅绘制出参数为b时所示的直线

plot(x, y, "c")

结果如下图所示:

使用type为c时的效果

(5)使用main参数、xlab,ylab的情形

plot(x, y, "l",main="plot函数绘图演示",xlab="x值",ylab="y值")

结果形式如下:

带标题及坐标标签的情形

(6)xlim、ylim参数的使用

plot(x,y,xlim=c(10,50),ylim=c(10,50))

结果形式如下:

给出xlim和ylim参数的情形

即x轴的坐标范围为10~50,y轴的坐标范围为:10~50

注:以上没有给x和y赋值时,默认使用前面x和y的值。

在R语言中,使用abline()函数可以在当前绘图中添加一条或多条直线。

在绘图中可以设置的参数一般包括:直线的截距(a),直线的斜率(b),水平线的纵轴取值(h)、垂直线的横轴取值(v)等。

abline()函数的使用格式为:

abline(a = NULL, b = NULL, h = NULL, v = NULL,
reg = NULL, coef = NULL, untf = FALSE, ...)

各参数的含义为:

(1)a 要绘制的直线截距

(2)b 直线的斜率

(3)h 会水平线时的纵轴值

(4)v 画垂直线时的横轴值

(5)reg 是一个具有coef方法的回归对象名称。若该对象返回的向量长度为1,则该值会作为该该函数的斜率,否则前两个值将会分别作为所绘直线的截距和斜率。

(6)coef 一个二维向量,给出截距和斜率

(7)untf 逻辑值,如果UNTF为真,且坐标轴中的一个或两个进行了对数变换,则会绘制对应于原始坐标系中的直线的曲线,否则在变换坐标系中绘制线。

abline()函数典型的用法主要有以下几种:

(1)abline(a, b, untf = FALSE, ...)

(2)abline(h =, untf = FALSE, ...)

(3)abline(v =, untf = FALSE, ...)

(4)abline(coef =, untf = FALSE, ...)

(5)abline(reg =, untf = FALSE, ...)

附加参数还可以给出线型、线条颜色,线条宽度等等。

下面举几个例子:

## 首先使用plot函数绘制一个空图,并设置坐标系的纵坐标与横坐标的比例为1:
plot(c(-2, 3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)

## 绘制一条水平线和垂直线,并指定颜色
abline(h = 0, v = 0, col = "gray60")

如下图所示:

abline函数绘制直线

# 为图添加网格线或参考线
abline(h = -1:5, v = -2:3, col = "lightgray", lty = 3)

结果如下图所示:

abline函数绘制参考线

#绘制一条斜线
#如绘制y = 2x + 1
#即绘制斜率为2,截距为1的直线
abline(a = 1, b = 2, col "red")  #这里指定直线颜色为红色

结果如下图中红色直线所示:

在回归方程中可以添加趋势线

#在散点图中绘制趋势线
#(数据含义见:使用R语言绘制散点图
x <- c(2,5,1,3,4,1,5,3,4,2)
y <- c(50, 57, 41, 54, 54, 38, 63, 48, 59, 46)
reg <- lm(y~x)

plot(xyxlab = "广告次数", ylab = "销售额(100美元)")
abline(regcol = "blue")

结果见下图

使用abline函数为散点图添加回归趋势线

abline函数主要在当前图中添加一条直线,该直线可以通过给定截距和斜率,或者垂直于横轴或纵轴的向量,或者是回归对象等。

lines()函数也是一个低水平绘图函数。它主要是在当前绘图中通过线段依次将点连接起来。

其语法格式为:

lines(x, ...)

默认格式为:

lines(x, y = NULL, type = "l", ...)

x, y是数值向量,表示点的坐标。

type字符串,表示绘图类型。默认为划线。

...为附加参数,如线型,线的颜色等等。

下面举例说明,本例统计了一周当中,工作日和非工作日下午1点到8点的网站访问情况,绘制图查看趋势。

编写R程序如下:

t <- rep(1:8)  #向量t表示时间1~8点

#v1为非工作日时网站在1~8点时的平均访问量
v1 <- c(245,356,210,189,345,234,191,452)

#v2工作日时网站在1~8点时的平均访问量
v2 <- c(345,451,541,548,600,720,650,560)

#使用plot绘制一个空图,lines函数必须是在已有图形上绘制
plot(c(1,8), c(100, 750), type = "n", xlab "时间", ylab "访问次数")

#使用abline函数添加网格线
abline(seq(100, 750, by = 20),= 0:8, col "lightgray", lty = 3)

#绘制折线,分别用红色和蓝色加以区分
lines(tv1col "red")
lines(tv2col = "blue")

绘图结果如下图所示:

使用lines函数绘制折线图

原文地址:https://www.cnblogs.com/purple5252/p/15566566.html