当前位置: 首页 > 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执行验证或…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...