当前位置: 首页 > news >正文

R语言数据可视化之美专业图表绘制指南(增强版):第1章 R语言编程与绘图基础

第1章 R语言编程与绘图基础

目录

  • 第1章 R语言编程与绘图基础
    • 前言
    • 1.1 学术图表的基本概念
      • 1.1.1 学术图表的基本作用
      • 1.1.2基本类别
      • 1.1.3 学术图表的绘制原则
    • 1.2 你为什么要选择R
    • 1.3 安装

前言

这是我第一次在博客里展示学习中国作者的教材的笔记。我选择这本书的依据是作者同时具有严谨性和易读性,所以该书适合学习者从了解计算机语言逐渐过渡到运用,为创建论文图表、学习数据分析奠定基础。

本书主要介绍如何使用R中的ggplot2包及其拓展包,以及ggraph、circlize和plot3D等包绘制专业图表。本书先介绍了R语言编程基础知识,以及使用dplyr、tidyr、reshape2等包的数据操作方法;再对比了base、lattice和ggplot2等包的图形语法。本书系统性地介绍了使用ggplot2包及其拓展包绘制类别对比型、数据关系型、时间序列型、整体局部型、地理空间型等常见的二维图表的方法,ggraph、 igraph、circlize等包绘制层次、网络关系型图表,以及使用plot3D包绘制三维图表(包括三维散点图、柱形图和曲面图等)的方法。另外,本书也介绍了论文中学术图表的图表配色、规范格式等相关技能与知识。

请跟我一起学习吧!

1.1 学术图表的基本概念

.数据展示图:先根据数据绘制成图表,再将其导出生成图片,主要包括各种点线图、柱形图、饼图等统计图表,一般使用Excel、GraphPadPrism、SigmaPlot、Origin、MATLAB、Python、R等专业绘图软件绘制(Excel并非如大众所说不能导出高分辨率的图片和矢量图)。注意,保存图片时,一定要保存成高分辨率的TIFF格式和EPS矢量格式的图片,因为矢量图片是可以使用图片处理软件进行再编辑的。由数据生成的图表是可重复修改的,因此一定要保存好原始数据,一旦发现图表有任何问题可以马上进行修改。

2.实验拍摄图:使用设备或者仪器拍摄采集的图片,包括显微镜、扫描仪及摄像机等所拍照片。一定要在最刚开始时就拍成高清的(设置成高分辨率),也就是要保证原始图片的高分辨率,接下来处理图片就会比较方便,免得因为图片质量不佳而重复实验。若有必要,则可以将每张图片存储成TIFF和JPG两种格式(以应对部分期刊的特殊要求)。

3.流程示意图:使用简明的线条、基本图形和箭头等绘制论文中的重要的实验流程或步骤,用以说明基本原理或解释文字材料,一般使用PPT、Visio、Illustrator、CorelDRAW、3DMax等软件绘制。

1.1.1 学术图表的基本作用

读者经常通过图表来判断这篇文章是否值得阅读,所以每个图表都应该能不依赖正文而独立存在。
(1)真实、准确、全面地展示数据;
(2)以较小的空间承载较多的信息;
(3)揭示数据的本质、关系、规律。第三点作用尤为重要,Matthew O. Ward也提出,可视化的终极目标是洞悉蕴含在数据中的现象和规律,这包括多重含义:发现、决策、解释、分析、探索和学习。

比如:原始数据是31组x-y的二维数据。仅仅只从数据的角度去观察数据,就很难发现x与y之间的具体关系。将实际的数据分布情况使用二维可视化的方法呈现,如图1-1-3所示,则可以快速地从数据中发现数据内在的模式与规律。

1.1.2基本类别

黑白:数据系列的区分主要体现在数据标记上,可使用不同的填充纹理。
彩色

1.1.3 学术图表的绘制原则

所以,学术图表首先要规范,符合期刊的投稿要求,然后在规范的基础上实现图表的美观和专业。在当前贯彻科技论文规范化、标准化的同时,图表的设计也应规范化、标准化。总而言之,学术图表的制作原则主要是规范、简洁、专业和美观

规范就是指学术图表符合投稿期刊的图表格式和分辨率方面的要求,这是绘制图表的一个基础条件。绘图时满足投稿期刊的图表要求,这样至少能满足期刊编辑的要求,不会立即被退稿、被要求修改图表格式,例如图表的单位、字体、坐标、图例、轴名等。另外,期刊还会要求图表的分辨率和格式,一般要求RGB彩色图片的分辨率为300dpi及以上。

专业就是指图表要能全面地反映数据的相关信息。当我们获得足够的实验数据后,需要重点思考的就是选择哪种图表能更加全面地表达数据信息。比如,同样是多次重复实验获得的数据,带误差线的散点图、带误差线的柱形图、箱形图等图表类型的选择就是我们要重点考虑的问题。

1.2 你为什么要选择R

学术绘图软件
像Excel、Origin、SigmaPlot、GraphPad Prism这4款软件,就不需要编程,只要点击界面按钮就可以绘制图表。尽管这些工具都非常容易使用,但也存在一些缺憾。只需鼠标操作无疑十分便捷,但随之而来的却是丧失一些灵活性。你可以改变颜色、字体和标题,但仅限于软件所提供的那些元素。这些软件只能由你去适应它的操作规则,让你使用现有的图表,而并不能创造新的图表。

像MATLAB、Python和R这3款软件,则需要编程才能实现图表的绘制。这些软件本身包含很多数据可视化的函数(function)或者包(package),供用户绘图时使用。尤其是在不同的数据集需要重复操作的情况,如果使用界面绘图软件,则可能需要从头到尾将绘图流程重新实现一遍,而相比之下,通过代码来处理数据就会更加容易,因为针对不同的数据集只需稍微改动一下代码就可以解决。如果你充分掌握代码与算法,那也可以自己编写函数设计新颖的图表。

R相较于其他的所有软件,R的优势之一在于,它是专为数据分析而设计的,它是主要用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言有一系列的数据可视化包,包括ggplot2[插图]及ggplot2拓展包、lattice、leaflet、playwith、ggvis、ggmaps。R还提供了部分地图绘制功能,地区数据分析提供了有关地区分析的综合性R工具包列表。另外,用户可以下载《地理统计制图实用指南》——关于如何使用R及其他工具分析空间数据的可免费下载的电子书。

SigmaPlot是一款最佳的学术绘图软件!使用SigmaPlot画出精密的图形是件极容易的事,目前已有超过十万的使用者,特别适合科学家使用。本软件允许用户自行建立任何所需的图形,可插入多条水平轴或垂直轴,指定误差棒(error bar)的方向,让你的图更光彩耀眼,只要用SigmaPlot将图形制作完成即可动态连接给其他软件展示使用,并可输出成EPS、TIFF、JPEG等图形格式,或放置于网站上以供浏览。非常适合网站动态显示图形,使用场合如长时间记录的气象、温度等。

GraphPad Prism是一款集数据分析和作图为一体的数据处理软件,尤其适合生物医学类,可以直接输入原始数据获得高质量的学术图表。它在统计分析上劣于SPSS等统计软件,但是不需要输入程序语言,只需输入原始数据,其操作容易、绘图美观。可与PPT、Word相连接。

1.3 安装

包安装好之后,需要加载才能使用。现在主要有两种函数可供选择:library()或者require(),比如:library(ggplot2)。有时已经加载的包可能需要卸载。这个可以在RStudio中的“Packages”界面取消勾选相应的复选框,或使用detach()函数:detach(“package:ggplot2”)

相关文章:

R语言数据可视化之美专业图表绘制指南(增强版):第1章 R语言编程与绘图基础

第1章 R语言编程与绘图基础 目录 第1章 R语言编程与绘图基础前言1.1 学术图表的基本概念1.1.1 学术图表的基本作用1.1.2基本类别1.1.3 学术图表的绘制原则 1.2 你为什么要选择R1.3 安装 前言 这是我第一次在博客里展示学习中国作者的教材的笔记。我选择这本书的依据是作者同时…...

网站添加pwa操作和配置manifest.json后,没有效果排查问题

pwa技术官网:https://web.dev/learn/pwa 应用清单manifest.json文件字段说明:https://web.dev/articles/add-manifest?hlzh-cn Web App Manifest:Web App Manifest | MDN 当网站添加了manifest.json文件后,也引入到html中了&a…...

MongoDB聚合运算符:$cosh

文章目录 语法使用举例双曲余弦值角度双曲余弦值弧度 $cosh聚合运算符用来计算双曲余弦值&#xff0c;返回指定表达式的双曲余弦值。 语法 { $cosh: <expression> }<expression>为可被解析为数值的表达式$cosh返回弧度&#xff0c;使用$radiansToDegrees运算符可…...

Jenkins配置在远程服务器上执行shell脚本(两种方式)

Jenkins配置在远程服务器上执行shell脚本 方式一&#xff1a;通过SSH免密方式执行 说明&#xff1a;Jenkins部署在ServerA&#xff1a;10.1.1.74上&#xff0c;要运行的程序在ServerB&#xff1a;10.1.1.196 分两步 第一步&#xff1a;Linux Centos7配置SSH免密登录 Linux…...

Java+SpringBoot,打造社区疫情信息新生态

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…...

js ES6判断字符串是否以某个字符串开头或者结尾startsWith、endsWith

1.前言 startsWith&#xff1a;startsWith方法用于检查字符串是否以指定的字符串开头。 endsWith&#xff1a;endsWith方法用于检查字符串是否以指定的字符串结尾。 2.用法示例 const str Hello, world!;console.log(str.startsWith(Hello)); // true console.log(str.starts…...

预研项目完成后小批量验证(技术变更流程)

...

Bert-as-service 实战

参考&#xff1a;bert-as-service 详细使用指南写给初学者-CSDN博客 GitHub - ymcui/Chinese-BERT-wwm: Pre-Training with Whole Word Masking for Chinese BERT&#xff08;中文BERT-wwm系列模型&#xff09; 下载&#xff1a;https://storage.googleapis.com/bert_models/…...

微信小程序(四十七)多个token存储

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 1.基础存储模板 2.中括号实现变量名匹配 源码&#xff1a; app.js App({//提前声明的变量名token:wx.getStorageSync(toke),refreshToken:wx.getSystemInfoAsync(refreshToken),setToken(key,token){//保存token到全局…...

机器学习(II)--样本不平衡

现实中&#xff0c;样本&#xff08;类别&#xff09;样本不平衡&#xff08;class-imbalance&#xff09;是一种常见的现象&#xff0c;如&#xff1a;金融欺诈交易检测&#xff0c;欺诈交易的订单样本通常是占总交易数量的极少部分&#xff0c;而且对于有些任务而言少数样本更…...

几个好用的 VUE Table

Vue easytable - 功能恰到好处 无学习成本 上手就用Vue good table - UI 清新 功能直给 适合小项目Vxe table - 宝藏级 table 组件 高级功能低调好用 维护频率高tabulator - 元老级 table 组件 高级功能平民化AG Grid - 媲美 Excel 的 Table 组件 能想到的复杂功能它都能做到...

Vue源码系列讲解——实例方法篇【三】(生命周期相关方法)

目录 0. 前言 1. vm.$mount 1.1 用法回顾 1.2 内部原理 2. vm.$forceUpdate 2.1 用法回顾 2.2 内部原理 3. vm.$nextTick 3.1 用法回顾 3.2 JS的运行机制 3.3 内部原理 能力检测 执行回调队列 4. vm.$destory 4.1 用法回顾 4.2 内部原理 0. 前言 与生命周期相关…...

百度SEO工具,自动更新网站的工具

在网站SEO的过程中&#xff0c;不断更新网站内容是提升排名和吸引流量的关键之一。而对于大多数网站管理员来说&#xff0c;频繁手动更新文章并进行SEO优化可能会是一项繁琐且耗时的任务。针对这一问题&#xff0c;百度自动更新文章SEO工具应运而生&#xff0c;它能够帮助网站管…...

供应链|NUS覃含章MS论文解读:数据驱动下联合定价和库存控制的近似方法 (二)

编者按 本次解读的文章发表于 Management Science&#xff0c;原文信息&#xff1a;Hanzhang Qin, David Simchi-Levi, Li Wang (2022) Data-Driven Approximation Schemes for Joint Pricing and Inventory Control Models. https://doi.org/10.1287/mnsc.2021.4212 文章在数…...

删除有序数组中的重复项Ⅱ

问题 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明…...

Java底层自学大纲_数据结构和算法篇

数据结构和算法专题_自学大纲所属类别学习主题建议课时&#xff08;h&#xff09; A 数据结构和算法001 数据结构和算法基础&#xff0c;时间复杂度Ot和空间复杂度Os2.5 A 数据结构和算法002 数学知识回顾-指数、对数、级数、模运算、复杂度2.5 A 数据结构和算法003 高数知识…...

群晖NAS配置WebDav结合内网穿透实现公网访问本地影视资源

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是&#xff1a;1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透&#xff0c;映射至公网4 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内…...

Vue3报错Promise executor functions should not be async.

解决方法 加注释。。。// eslint-disable-next-line no-async-promise-executor // eslint-disable-next-line no-async-promise-executor new Promise<boolean>(async (resolve, reject) > {... }),...

(正规api接口代发布权限)短视频账号矩阵系统实现开发--技术全自动化saas营销链路生态

短视频账号矩阵系统实现开发--技术全自动化saas营销链路生态源头开发&#xff08;本篇禁止抄袭复刻&#xff09; 一、短视频矩阵系统开发者架构 云罗短视频矩阵系统saas化系统&#xff0c;开发层将在CAP原则基础上使用分布式架构,对此网站的整体架构采用了基于B/S三层架构模式…...

【Redis】redis通用命令

redis连接命令&#xff08;客户端&#xff09; 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前安装redis 的src目录下&#xff0c;具体为/usr/local/redis/src。注意此redis实例没有设置密码&#xff0c;如果设置了密码需要先使用命令AUTH执行验证或…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...