前言
本书主要介绍使用R中的ggplot2包及其拓展包绘制专业图表的方法。本书先介绍了R语言编程基础知识,以及使用dplyr、tidyr、reshape2等包的数据操作方法;再对比了base、lattice和ggplot2包的图形语法。本书首次系统性地介绍了使用ggplot2包及其拓展包绘制类别对比型、数据关系型、时间序列型、整体局部型等常见的二维图表的方法,以及使用plot3D包绘制三维图表(包括三维散点图、柱形图和曲面图等)的方法。另外,本书也首次介绍了论文中学术图表的图表配色、规范格式等相关技能与知识。
本书定位
虽然现在Python语言越来越流行,尤其是在机器学习与深度学习等领域,但是R语言在数据分析与可视化方面仍然具有绝对的优势,其中ggplot2包及其拓展包人性化的绘图语法大受用户的喜爱,特别是生物信息与医学研究者。现在Nature、Science和Cell等期刊上大量的图表都是使用R语言绘制的,所以很有必要系统性地介绍R语言的绘图方法。
R ggplot2有两本很经典的教程:ggplot2 Elegant Graphics for Data Analysis和R Graphics Cookbook,两书重点介绍了ggplot2包的绘图语法及常见图表的绘制方法,但是其介绍的图表种类并不多。所以本书基于R中的ggplot2包及其拓展包和plot3D包,系统性地介绍了几乎所有常见的二维和三维图表的绘制方法,包括简单的柱形图系列、条形图系列、折线图系列,以及复杂的和弦图、矩形树状图、日历图等。
读者对象
本书适用于想学习数据分析与可视化相关专业课程的高校学生,以及对数据分析与可视化感兴趣的职场人士阅读,尤其是R语言用户。从软件掌握程度而言,本书同样适用于零基础学习R语言的用户。
阅读指南
全书内容共有9章,其中,第1章和第2章是后面7章的基础,第3~8章都是独立章节,可以根据实际需求有选择性地进行学习。
第1章 介绍R语言编程与数据可视化基础,对比了base、lattice和ggplot2包的图形语法,重点介绍了ggplot2包的图形语法;
第2章 介绍R语言数据处理基础,重点介绍了使用dplyr、tidyr、reshape2等包的数据操作方法;
第3章 介绍类别比较型图表,包括柱形图系列、条形图系列、南丁格尔玫瑰图、径向柱图等约30种图表;
第4章 介绍数据关系型图表,包括二维和三维散点图、气泡图、等高线图、三维曲面图、三元相图、二维和三维瀑布图、相关系数热力图等约60种图表;
第5章 介绍数据分布型图表,包括一维、二维和三维的统计直方图和核密度估计图、抖动散点图、点阵图、箱形图、小提琴图等约50种图表;
第6章 介绍时间序列型图表,包括折线图和面积图系列、日历图、螺旋图系列、量化波形图、地平线图等约20种图表;
第7章 介绍局部整体型图表,包括饼图、散点复合饼图系列、旭日图、矩形树状图、马赛克图、华夫饼图等约20种图表;
第8章 介绍高维数据的可视化方法,包括分面图系列、矩阵散点图、热力图、平行坐标系图、RadViz图、图标法等约20种图表;
第9章 介绍论文中学术图表的常用技能,包括常见的截图与图片处理软件及其功能、矢量图片的修改、论文中学术图表数据的提取与重绘、论文中学术图表的规范与调整等。
应用范围
本书的图表绘制方法都是基于R中的ggplot2包及其拓展包和其他绘图包实现的,几乎适应于所有常见的二维和三维图表。但是由于依据《地图管理条例》第十五条规定:“国家实行地图审核制度。向社会公开的地图,应当报送有审核权的测绘地理信息行政主管部门审核。但是,景区图、街区图、地铁线路图等内容简单的地图除外。”本书本来有专门的章节讲解使用R语言如何绘制不同地理坐标投影下,从世界到不同国家与区域的地图,但是由于地图审核周期等方面的原因忍痛移除。
适用版本
本书所用R版本为:3.3.3。R作为开源免费的软件,数据分析与可视化的包更新迭代很快,这是它的优势。但是有时候有些代码运行可能会由于R或者R包版本的更新,而出现函数弃用(deprecated)的情况。此时,需要自己更新代码,使用新的函数替代原有的函数等。
源代码
本书配备有几乎所有图表的R语言源文件及其.csv或.txt格式的数据源文件。但是需要注意的是,如果运行的R语言版本没有安装相应的数据分析与可视化的包(package),那么请预先安装相应的包,才能成功运行代码。同时,也请注意运行R语言和R包的版本是否已经更新。
与我联系
因本人知识与能力所限,书中纰漏之处在所难免,欢迎并恳请读者朋友们给予批评与指正,可以通过邮箱联系笔者本人;如果读者有关于R语言学术图表或商业图表绘制的问题,可以联系笔者交流。另外,更多关于R语言图表绘制的教程请关注笔者的博客、专栏和微博平台。也可以重点关注我们的微信公众号:EasyCharts,也可以添加笔者微信:EasyCharts。R语言数据分析与可视化的文章会优先发表在微信公众号平台。
邮箱:easycharts@qq.com
知乎专栏:https://zhuanlan.zhihu.com/EasyCharts-R(知乎账号:EasyCharts)
博客:http://easychart.github.io/
新浪微博:https://weibo.com/easycharts?source=blog&is_all=1(微博账号:EasyCharts)
致谢
桃李春风一杯酒,江湖夜雨十年灯。笔者的处女作《Excel数据之美:科学图表与商业图表的绘制》也至今出版逾两年,一直想着要修订这本书的。但是旧书未翻新,新书忙于码字改稿,实在是有愧于读者。其实,在撰写这本新书的时候,数次想放弃。写书实在是一件费力劳神的事情,笔者是凭借着对数据可视化的热爱才坚持至今。
这本书从2017年5月25日开始动笔,断断续续居然也花费了两年的时间。与其说是花费,不如说是陪伴吧。笔者经常对朋友开玩笑说,心情不好的时候码码代码、画画图表,是一件消磨时间、放松心情的事情。
在断断续续的写稿中,笔者也认识了很多热爱数据分析与可视化的朋友,甚是荣幸,也得益于他们的帮助。很感谢《R语言游戏数据分析与挖掘》的作者谢佳标老师和先锋信息科技有限公司CEO林祯舜老师对笔者的鼓励与帮助,也因此有幸参加2018年的R语言大会;也非常感谢在码字、写代码时一起交流学习的李誉辉(四川大学高分子学院)、杜雨(美团用户平台—大数据与算法部—商业分组部)、刘钰(河南大学土木建筑学院)、厚缊(深圳中观经济咨询有限公司)等诸多技术大佬。因为有你们的帮助,所以才有今天这本书。
最后,想对大家说,也是对自己说:且将新火试新茶,诗酒趁年华!
作者
2019年3月31日
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
●下载资源:本书如提供示例代码及资源文件,均可在下载资源处下载。
●提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
●交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。页面入口:http://www.broadview.com.cn/36366