zoukankan      html  css  js  c++  java
  • 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函数绘制折线图

  • 相关阅读:
    C++中的动态内存管理
    Harbor镜像仓库搭建
    nexus私服搭建
    Tekton ACK安装
    容器监控实践,从入门到放弃
    Bitwarden_搭建密码服务器
    Jenkins-部署文档
    Mysql-基本的
    Zabbix添加-钉钉故障报警
    ZABBIX-4.4 yum安装
  • 原文地址:https://www.cnblogs.com/purple5252/p/15566566.html
Copyright © 2011-2022 走看看