“工欲善其事,必先利其器”,学术绘图软件的选择与使用特别重要。不同学科的研究人员使用的软件有所不同,但是基础的绘图思想与理念是相通的 (这部分会在后面的章节讲解)。工科背景的人员常使用Matlab,计算机背景的人员常使用Python,统计学科的人员常使用R,医学背景的人员常使用Graphpad等。常用的论文图表绘制软件包括Excel、Origin、Sigmplot、Graphpad、Matlab、Python、R等,如图1-2-1所示。每个绘图软件的图表都有不同的图表风格。
1. 常用绘图软件
我列出了常用的七款学术论文绘图软件如表1-2-1所示。从技能要求的角度主要可以分为两大类:编程与界面操作
像Excel、Origin、Sigmaplot、GraphPad这4款软件,就不需要编程、只要点击界面按钮就可以绘制图表。尽管这些工具都非常容易使用,但也存在一些缺憾。只需鼠标操作无疑十分便捷,但随之而来的却是丧失一定的灵活性。你可以改变颜色、字体和标题,但仅限于软件所提供的那些元素。这些软件只能由你去适应它的操作规则、让你使用现有的图表,而并不能创造新的图表。
像Matlab、Python和R这3款软件,需要编程才能实现图表的绘制。这些软件本身包含很多数据可视化的函数(function)或者包(package),供用户绘图使用。尤其针对不同的数据集需要重复操作的情况,如果使用绘图软件可能需要从头到尾将绘图流程重新实现一遍,而相比之下,通过代码来处理数据就会更加容易,因为针对不同的数据集只需稍微改动一下代码就可以解决。如果你充分掌握代码与算法,你也可以自己编写函数设计新颖的图表。
1.1 R
相较于其他的所有软件,R的优势之一在于它是专为数据分析而设计的。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言有一系列的数据可视化包(packages),包括lattice、leaflet、playwith 、atticist 、iplots 、ggvis、ggmaps,以及很流行的ggplot2包(两本关于ggplot2的经典书籍:《ggplot2 Elegant Graphics for Data Analysis》和《R.Graphics.Cookbook》),R语言ggplot2包的官网:Function reference · ggplot2
另外,R还提供了部分地图功能,地区数据分析( CRAN Task View: Analysis of Spatial Data)提供了有关地区分析的综合性R工具包列表。地理统计制图实用指南(A Practical Guide to Geostatistical Mapping )提供了关于如何使用R及其他工具分析空间数据的可免费下载的电子书。
1.2 Python
Python是一种面向对象的解释型计算机程序设计语言。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。Python语言也有一系列的数据可视化包(packages),包括Pandas、Matplotlib、Seaborn、ggplot、Bokeh、Pygal等(可参考Overview of Python Visualization Tools ),
Matplotlib 包的官网:Python plotting - Matplotlib 2.0.2 documentation ;
Seaborn包的官网:Seaborn: statistical data visualization ;
ggplot包的官网:ggplot | Home。
1.3 Matlab
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。Matlab软件本身就提供了很多绘图函数,可以满足数据可视化的基本需求:MATLAB Plot Gallery。但是还有另外两款Matlab绘图包很值得推荐使用:PlotPub和Gramm,其中,Gramm包是在Matlab中实现了R ggplot2的绘图风格,大大提高了Matlab绘图的美观程度。
PlotPub包的官网:masumhabib/PlotPub,
Gramm包的官网:piermorel/gramm 。
1.4 Sigmaplot
Sigmaplot是一款最佳的科学绘图软件! 使用SigmaPlot画出精密的图型是件极容易的事,目前巳有超过十万的使用者,特别设计给科学家使用。本软件允许您自行建立任何所需的图型,您可插入多条水平或垂直轴,指定Error bar的方向,让您的图更光彩耀眼,只要用SigmaPlot将图制作完成即可动态连结给其它软件展示使用,并可输出成EPS、TIFF、JPEG等图形格式,或置放于您的网站上以供浏览。非常适合网站动态显示图形使用之场所如长时间纪录之气象,温度等等场合。
1.5 Origin
Origin为OriginLab公司出品的较流行的专业函数绘图软件,是公认的简单易学、操作灵活、功能强大的软件,既可以满足一般用户的制图需要,也可以满足高级用户数据分析、函数拟合的需要。Origin自1991年问世以来,由于其操作简便,功能开放,很快就成为国际流行的分析软件之一,是公认的快速、灵活、易学的工程制图软件。Origin 2017版本增加了许多颜色主题方案,可以大大改进图表的美观程度。
1.6 Graphpad
GraphPad Prism是一款集数据分析和作图为一体的数据处理软件,尤其适合生物医学类,可以直接输入原始数据获得高质量的科学图表。它在统计分析上劣于SPSS 等统计软件,但是不需要输入程序语言,只需输入原始数据,容易操作,绘图美观。可与ppt,word相链接。
1.7 Excel
几乎所有人都知道这款软件。Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。Excel能实现大部分二维图表的绘制与基础的数据处理与分析,具体可以参考学习《Excel 数据之美: 科学图表与商业图表绘制》。
实例分析
为更好地学习这7款绘图软件的风格,现采用相同的数据集合,分别绘制了散点图、曲线图、(堆积)柱形图和箱型图4种图表类型,如图1-2-2到-8所示。
1. 图1-2-2 R ggplot2的图表风格最为独特与美观,这种图表在部分论文中也是有直接使用的。使用R ggplot2 Set3的颜色主题,绘图区背景填充颜色为RGB(229, 229, 229)的灰色,以及白色的网格线[主要网格线的颜色为RGB(255, 255, 255),次要网格线的颜色为RGB(242, 242, 242)];
2. 图 1-2-3 Python Seaborn的图表风格也很有特色,使用Seaborn包的颜色主题方案,绘图区背景填充颜色为RGB(234,234, 242)的淡蓝色,以及RGB(255, 255, 255)的白色的主要网格线(无次要网格线);
3. 图1-2-4 是使用Matlab 2014b 通过编程绘制的图表,使用Matlab默认的颜色主题方案Parula,网格线设定为“无”。Matlab通过函数(Function)直接绘制的图表,可以通过图表编辑器对图表优化,但是也并不能实现箱型图颜色的填充。如果Matlab使用Gramm包可以绘制更加美观的图表。
4. 图 1-2-5到-7 分别对应Sigmaplot、Origin和GraphPad绘制的图表,这是最为常见的学术图表。它们的图表风格基本相同:绘图区背景填充颜色为RGB(255,255,255)的白色,这样可以导致背景不太复杂,尤其适应于图表尺寸较小的时候保证数据的清晰展示;这些图表使用绘图软件的默认颜色主题,由于不同软件的颜色主题不同,及时相同的图表样式,也会导致图表的美观存在较大的审美差异。
5. 图1-2-8 是使用Excel绘制的图表,使用Excel默认颜色主题方案“Office 2007-2010”。Excel 2016 添加了几种新型图表类型,包括树状图、箱型图等;Excel 2013及以前版本只能通过堆积柱形图间接地实现箱型图。
工具的选择 绘图软件始终只是使用的一个工具而已。归根结底,对数据的分析和图表的设计取决于你自己。只要把基础的绘图思想与理念融会贯通,使用其中一门绘图软件就可以绘制出其他软件的图表风格。《Excel 数据之美: 科学图表与商业图表绘制》就是使用Excel实现其他绘图软件的图表风格,包括R、Python、Matlab等具有鲜明特色的图表风格。
2. 图片处理软件
在论文中,都需要把图表另存为一定分辨率和格式的图片,再插入文档中。有时候需要调整图片的大小、分辨率和格式以满足期刊的投稿要求。下面主要介绍三种常用的图片编辑处理软件:Photoshop、Adobe Illustrator和Paint。
2.1 Photoshop
Photoshop(简称“PS”)主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。PS有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。Photoshop的专长在于图像处理,而不是图形创作。图像处理是对已有的位图图像进行编辑加工处理以及运用一些特殊效果,其重点在于对图像的处理加工;图形创作软件是按照自己的构思创意,使用矢量图形等来设计图形。
Photoshop 中国官方产品页面: Adobe Photoshop CS6
2.2 Adobe Illustrator
Adobe Illustrator是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件,作为一款非常好的矢量图形处理工具,Adobe Illustrator广泛应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等。
Adobe Illustrator是设计业界的标准。《纽约时报》中送印的每一幅图表都是在Illustrator中创建或编辑的。Illustrator被广泛用于印刷是因为它处理的是矢量图形,而非像素。这意味着你可以将图片无限放大,而不会损失显示质量。相对地,如果你放大的是低分辨率的照片(照片都是由固定数量的像素组成),那么就会发现图片出现严重的失真。
Adobe Illustrator官方产品页面: Adobe Illustrator CC。
VectorTuts(Graphic Design & Illustration Tutorials by Envato Tuts+)提供大量Illustrator的简明使用教程。
2.3 Paint
毕竟前面两款图像处理软件操作界面复杂,尤其是新手会感觉难以上手。另外,有时候简单的图片编辑处理根本没必要使用到这些高级软件,颇有点“杀鸡焉用牛刀”,所以我给大家推荐一款Window系统自带的图像处理软件:Paint (画图)。“画图”程序是一个位图编辑器,可以对各种位图格式的图画进行编辑,用户可以自己绘制图画,也可以对扫描的图片进行编辑修改,在编辑完成后,可以以BMP,JPG,GIF 等格式存档,用户还可以发送到桌面或其他文档中。
当用户要使用画图工具时,可单击“开始”按钮,单击“所有程序”|“附件”|“画图”,这时用户可以进入“画图”界面。
3. 常用截图软件
3.1 FastStone Capture
FSCapture是一款抓屏工具,体积小巧、功能强大。不但具有常规截图等功能,更有从扫描器获取图像,和将图像转换为 PDF 文档等功能。尤其值得称赞的是,其截图后,其自带的(图像查看/编辑器),功能强大,可以满足截图后,对图像的各种标注、裁切调节等需求,其功能不亚于 Windows 的Paint软件。而且 7.0 版本开始,加入了屏幕录像功能,质量堪比专业屏幕录像软件。是 Windows 中必备的扩展助手。
我最喜欢使用这个软件的原因是.截图后保存图片时,图片的分辨率可以设定成96-600 DPI的范围,这是很多其他截图软件无法达到的特点。尤其是很多论文对图片的分辨率要求至少300 DPI以上。
ACDsee是非常流行的看图工具之一。它提供了良好的操作界面,简单人性化的操作方式,优质的快速图形解码方式,支持丰富的图形格式,强大的图形文件管理功能等等。其中,它还有一个很强大的截图功能。该截图软件截图后是不改变图片的分辨率的,而其他截图软件一般会改变图片分辨率。
打开ACDsee → 工具 → 屏幕截图 → 选择“来源”和“目标”→ 开始 → 同时按下 Ctrl + Shift + P → 画待截图片区域(或保存) → 保存。保存的时候一定要设置好图片的格式和分辨率。
联系客服