【R语言】:图形初阶(1)

您所在的位置:网站首页 r语言怎么显示图 【R语言】:图形初阶(1)

【R语言】:图形初阶(1)

2024-04-22 15:13| 来源: 网络整理| 查看: 265

发现数据的模式。检查数据的异常值。人类非常善于从视觉呈现中洞察关系。数据初步可视化:图形的创建和保存;自定义符号、线条、颜色和坐标轴;标注文本和标题;图形的维度;多个图形的组合。参考书籍:《R语言实战(第2版)》第三章。本文代码运行环境为Windows版RStudio。使用图形

R语言最常用的画图函数为plot函数(常用画图函数还有hist直方图和boxplot箱型图),以R语言自带数据框(data.frame)mtcars为例,演示一下如何用R语言画出(构建)一张简单的图形。

attach(mtcars) #获取系统自带数据框mtcars plot(wt, mpg) #创建图形,车身重量wt为横轴,每加仑汽油行驶英里数(耗油量)mpg为纵轴 abline(lm(mpg~wt)) #函数abline表示画一条直线,嵌套的函数lm是线性回归函数 title("Regression of MPG on Weight") #显而易见,这是图形的标题 detach(mtcars) #解除绑定数据框mtcars

第一行代码,首先获取了数据框 mtcars 。

第二行代码确定了用plot函数创建图形并生成了一幅散点图,车身重量wt为横轴,每加仑汽油行驶英里数(耗油量)mpg为纵轴。

第三行代码最为复杂并较难理解,R语言实战(第2版)》一书中的原话是“向图形添加一条最优拟合曲线”。说实话,书中的这句话对于没有学过线性回归的读者来说简直是天方夜谭(也许作者认为本书的读者都具有一定的数学或统计学基础),哪怕这只是线性回归中最为简单的一元线性回归模型。我也很久没有接触线性回归了(早忘得差不多了),所以我用Google查询了(再次证明,就查专业资料而言某度真不行)一些资料来帮助我理解这行代码,下面我尽量用通俗易懂的话来解释一下我对这行代码的理解。

首先,abline(lm(mpg~wt))是一个函数嵌套,即函数abline里面的变量是函数lm的返回值

函数abline的用法请看下面来自炼数成金论坛某网友的回帖:

函数abline()可以在图上加直线,其使用方法有四种格式。

(1)abline(a,b),表示画一条y=a+bx的直线

(2)abline(h=y),表示画出一条过所有点得水平直线

(3)abline(v=x),表示画出一条过所有点的竖直直线

(4)abline(lm.obj),表示绘出线性模型得到的线性方程

函数lm用于计算简单的线性回归,简单的线性回归涉及到两个变量:一个是解释变量(也叫预测变量),在第三行代码中为wt;另一个是被解释变量(也叫响应变量),在第三行代码中为mpg。因此在我看来,代码lm(mpg ~ wt)用中文解释就是用已知车身重量的数据wt来预测每加仑汽油哦行驶英里数(耗油量)mpg

第四行代码给图形添加了标题“Regression of MPG on Weight”。第五行代码解除了最开始绑定的数据框mtcars。

运行全部代码即可得到一张简单的图形,见题图。

在上面的代码最开头添加一行代码pdf("REST.pdf"),最后面添加一行代码dev.off(),可以将图形直接保存到文件名为RTEST的PDF文件中,如下:

pdf("RTEST.pdf") attach(mtcars) #获取系统自带数据框mtcars plot(wt, mpg) #创建图形,车身重量wt为横轴,每加仑汽油行驶英里数(耗油量)mpg为纵轴 abline(lm(mpg~wt)) #函数abline表示画一条直线,嵌套的函数lm是线性回归函数 title("Regression of MPG on Weight") #显而易见,这是图形的标题 detach(mtcars) #解除绑定数据框mtcars dev.off()

除了 pdf() ,还可以使用函数 win.metafile() 、 png() 、 jpeg() 、 bmp() 、 tiff() 、 xfig()和 postscript() 将图形保存为其他格式。

当然了,如果使用RStudio,在右下角的Plots区域,可以直接点Export输出,用户可以自行选择图片格式或者PDF格式,并且可以很简便的更改文件名、图片格式、分辨率大小、保存路径等等,或者直接复制到剪贴板。

需要注意,利用函数plot()、hist()、boxplot()创建新图形会覆盖掉原来的图。R语言中通常有以下三种方法创建多个图形并且便于用户同时切换查看。

第一种,利用函数dev.new()在创建图形之前打开一个新的图形窗口。把上面例子的代码最开始增加函数dev.new(),把函数plot两个变量的顺序换一下,再把函数lm两个变量顺序也更换一下,图形原标题后面加上2,其他不变,代码调整后如下:

dev.new() attach(mtcars) plot(mpg, wt) abline(lm(wt~mpg)) title("Regression of MPG on Weight-2") detach(mtcars)

所以,每次创建新图形之前打开一个新的图形窗口就行了

dev.new() 语句1 dev.new() 语句2

当然也不难看出,你的电脑界面将弹出很多个新窗口(捂脸)。

第二种,以在RStudio上运行顺序调换之后的代码为例,运行代码后弹出一个新窗口,在菜单栏选择历史并勾选记录,然后可以使用菜单栏里上一个(PgUp)下一个(PgDown)依次查看已经绘制的图形。

第三种,利用函数 dev.new() 、 dev.next() 、 dev.prev() 、 dev.set() 和dev.off() 同时打开多个图形窗口,并且选择哪个输出到哪个窗口,可输入help(dev.cur)查看说明。这种方法,想想就很麻烦。

以上方法中,我认为第二种方法最为简单和易于操作。

扩展小技巧-图形组合

图形的组合在文章【R语言】:图形初阶(3) 中有详细介绍。

以下是我Google查资料的时候在一篇博客上看到的,原文链接:司空格子Ored -《R语言实战》读书笔记--第三章 图形初阶(一),这里原文引用

如果将不同的图形放在一个窗口中,可以先用par(mfrow = c(2,3))类似语句创建一个2行3列的图形集合,然后用plot一个一个画图就行了,结果见下图:


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3