R语言从入门到精通:Day8 r语言eemd
bigegpt 2024-10-12 05:08 8 浏览
原创 小浣熊 科研猫
是时候 关注 我们一波了
在上一次教程中,我们讲解了R语言绘图的诸多函数,想必看到自己做出的图形,肯定小有成就感吧。上期的最后,给大家预告了一部分本次教程的内容:图形的组合,除此之外,我们在讲讲基本图形的绘制(条形图、散点图、饼图、直方图等),赶紧开始battle起来吧
本篇教程,内容十分丰富,虽然是单篇,大家务必多多练习,可以充当一周的学习内容,静下心来慢慢吸收。
温馨提示
1、本节内容重点内容较多,
务必紧跟红色标记。
2、测试数据及代码
见文末客服小姐姐二维码。
图形的组合
图形的组合,顾名思义,就是将两张或者更多图形放在一起展示。在R中,一般使用函数 par() 或者 layout() 组合多幅图形。其中par()图形参数mfrow=c(nrows, ncols) 来创建按行填充的、行数为nrows、列数为ncols的图形矩阵。另外,可以使用 mfcol=c(nrows, ncols) 按列填充矩阵。
下面是两张函数 par() 中mfrow参数的实例。在函数par()和函数layout()的举例中,不可避免的使用到了散点图、条形图、箱线图等图形的绘制,这些内容也会在本次推文中提到,图形组合中的几个例子算是先给大家热热身。
图1:函数par(),参数mfrow的实例1
图2:函数par(),参数mfrow的实例2
参数mfcol的使用是类似的,就不重复举例了。
函数 layout() 的参数要更复杂一些,同时对图形布局的控制也更加精细。该函数通过layout(mat) 的形式实现图形的布局,其中 mat 是一个指定布局情况的矩阵。同时函数 layout() 中有 widths 和 heights 两个参数控制组合图形中单个图形的宽度和高度的比例。同样的,我们为大家提供了两个学习的例子。
图3:函数layout()的例子1
图4:函数layout()的例子2
如果在运行上面四幅图形的代码时出现了类似 Error in plot.new() : figure margins too large这样的错误,可以尝试将 Rstudio 中的“绘图区”放大一些,并不是我们的代码出错啦~~。
上面的几个例子虽然实现了图形的组合,但我们还需要更加精细的组合方法,函数 par() 中的参数fig 可以帮忙。下面是一个典型的例子。
图5:参数fig的实例
参数 fig 的使用可以理解为给每一幅图形以坐标系的方式指定绘图区域。将整个绘图区域理解为横坐标为 0 到 1、纵坐标为 0 到 1 的正方形区域,上图中散点图的绘图区为横坐标 0 到 0.8、纵坐标 0 到 0.8 的区域,上方的箱线图绘图区域为横坐标 0 到 0.8、纵坐标为 0.55 到 1 的区域。
这里区域的划分看上去好像和散点图重叠了,但实际效果并不是,因为每幅图形都有空白边界,同时区域的划分并不是一成不变的,需要在实际绘图中不断调整得到最美观简洁同时准确表达图形含义的效果
右边的箱线图的区域则为横坐标 0.65 到 1、纵坐标 0 到 0.8。相信大家在多次练习之后就可以用参数 fig 绘制出更加复杂美观的图形。
基本图形的绘制
在上面的几个例子中,我们已经接触到了散点图、条形图、箱线图的绘制,本次推文的剩余内容就是介绍这些基本图形的绘制。
基本图形主要包括了点图、条形图、箱线图、饼图、扇形图和核密度图等,这些图形的目的主要有两点:将数据的分布可视化展示、对数据进行跨组比较。下面就从条形图开始介绍基本图形的绘制。
条形图
条形图通过垂直的或水平的条形展示了类别型变量的分布(频数),在R中对应函数 barplot()。下面是几个简单的例子。
图6:简单条形图
图7:堆砌条形图和分组条形图
为了方便大家重复图形绘制过程,上面图形中展示的数据都是来自包vcd ,大家在运行代码前安装vcd包即可。其中图6中展示了简单条形图的绘制,图7中展示了堆砌条形图和分组条形图的绘制。图7中出现了图例与图形重叠的现象,大家可以回顾一下上一次推文中图例设置的内容,调整图例的大小和位置,就可以解决这个问题。(这个小问题就留给大家区解决了)
从上面这个问题可以看出,只有三个变量的情况下都不可避免的出现了图例和图形重叠的情况,更复杂的情况该怎么办?不用担心,条形图中的各种元素都是可以微调的,以图6中的第二幅图为例,调整图中文本的方向和大小使得图形更加简洁清晰。
图8:条形图的微调。
还有一种特殊但常见的条形图:棘状图。棘状图对堆砌条形图进行了重缩放,这样每个条形的高度均为1,每一段的高度即表示比例,可以通过vcd包中的函数spine()绘制。例子如下:
图9: 棘状图实例
饼图or扇形图
相比于条形图,饼图或者扇形图在R中不太受欢迎,因为我们对长度的比较总是比对面积的比较要更加敏感。即便如此,我们要为大家提供了一些饼图的实例。主要涉及函数 pie()、函数 pie3D()、函数 fan.plot()。
图10:饼图实例
图11:扇形图实例。
饼图中建议标注上每个变量的信息,否则分辨面积的大小不是一件容易的事情,特别是当差异很小的时候!相比之下,就不难理解为什么条形图更受欢迎了。
直方图
直方图和条形图很类似,但它描述的是连续型变量的分布。前面介绍图形组合的时候,我们已经接触了直方图的绘制,下面给大家一些更加细致的例子。
图12:直方图示例
第一幅图形就是最简单的直方图绘制,余下的三幅图都是在函数 hist() 中调整参数或者加上其他元素而绘制的图形,其中第三、四幅图形中加上了密度曲线(在后面会进一步介绍),这是很常见的处理方式。
在图12中的密度曲线有时候会单独出现,这时候被称为核密度图。绘制核密度图的方法在图12的代码中已经出现了 (plot(density(x)),下面是几个单独的例子。
图13:核密度图的示例
第一幅图形是最简单的核密度图,第二幅图形加上了一些微调。第三幅图形是三个密度曲线比较的图形,其中需要安装包sm。同时代码中用到了参数locator(使用这个参数之后,我们可以用鼠标选择图例的位置,避免了有时候无法处理图形和图例位置关系的尴尬)。
小提琴图
还有一种常见又美观的图形——箱线图(小提琴图是一种特殊的箱线图),其实我们在图形组合中也见过了,绘制方法为函数 boxplot()。小提琴图的绘制方法为vioplot()。最简单的箱线图的例子就不给大家重复了,下面是一幅展示了箱线图中各个元素含义的简图。
图14:箱线图含义解析
箱线图
箱线图的绘制是很灵活的,下面是几个实例。
图15:箱线图示例
第一幅图利用箱线图进行了跨组比较,第二幅图通过参数 notch 实现了凹槽箱线图的绘制,第三幅图的比较更复杂一些,但基本原理是类似的。
小提琴图
箱线图能很好的展示组间的差异,核密度图能很好的展示组内的分布,如果把这两种图形结合起来是不是听上去就很完美?小提琴图就是这样的一种图形,读过科研猫前面推文的同学应该对小提琴图的绘制还有印象,我们这里有更容易理解的代码(因为只有一行,一个函数 vioplot() 啊)。
图16:小提琴图示例
点图
最后我们用点图结束本次推文的所有内容,函数 dotchart() 可以绘制点图。
图17:点图的示例
在上图中,我们调整了函数 dotchart() 中的很多参数,可以看到简单的点图也可以展示出很多有用的信息,但是点图的实用性随着数据点的增多会急剧减小。
综合来说,图形的潜力是巨大的,我们下一次的推文还要进一步展示图形说明数据内在关系的能力。
最后,为了方便大家学习,本次推文中所有图形的数据都来自R自带或者R中函数包自带,图形及相关代码都可以通过客服小姐姐获得。
本期干货
·
!R语言图形day8图形绘制 !
关注“科研猫”公众号,联系客服
领取
科研猫公众号,国内外顶尖高校博士及PI联手打造的科研共享中心,涵盖生物信息、实验技能、统计绘图等内容的一体化平台,不断放送科研干货,现已推出《R语言入门》、《科研绘图》、《生物信息数据挖掘》、《机器学习》等多个系列,广受粉丝欢迎。
团队开发的Hiplot绘图系统也受到科研人员的极大赞赏,日点击率达到上万人次。
https://hiplot.com.cn
关注公众号后,
回复【hiplot】可获取注册激活码,免费成为hiplot会员,实现一键作图;
加客服微信可免费领取科研干货。
科研干货示例
相关推荐
- 方差分析简介(方差分析通俗理解)
-
介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...
- 正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃
-
吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...
- Python数据可视化:箱线图多种库画法
-
概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...
- 多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读
-
作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...
- 方差分析 in R语言 and Excel(方差分析r语言例题)
-
今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...
- 可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图
-
前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...
- matplotlib 必知的 15 个图(matplotlib各种图)
-
施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...
- R ggplot2常用图表绘制指南(ggplot2绘制折线图)
-
ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...
- Python数据可视化:从Pandas基础到Seaborn高级应用
-
数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...
- Python 数据可视化常用命令备忘录
-
本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...
- 统计图的种类(统计图的种类及特点图片)
-
统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...
- 实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)
-
大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...
- 通过AI提示词让Deepseek快速生成各种类型的图表制作
-
在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...
- 数据可视化:解析箱线图(box plot)
-
箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...
- [seaborn] seaborn学习笔记1-箱形图Boxplot
-
1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)