该笔记是datawhale平台开展的共读《科研论文配图绘制指南–基于Python》学习内容开展的笔记。
开源内容:https://github.com/datawhalechina/paper-chart-tutorial
一、环境包安装
1 创建并激活虚拟环境
python -m venv name_venv
.\scripts\activate
2 安装依赖
pip install proplot
pip install matplotlib==3.4.3
conda install seaborn==e.11.2
pip install scienceplots
pip install openpyxl
二、论文配图–线性图
科研论文配图分为线性图、灰度图、照片彩图和综合配图四类。其中线性图是指由包括Python、R、MATLAB 等编程软件,以及 Excel、SPSS、Origin(OriginLab 公司出品)等集成软件在内的绝大多数数据分析工具输出的多种插图样式,如折线图、散点图、柱形图等,是科技论文的主要配图。
科研论文配图主要包括 X 轴(X axis)、Y 轴(Y axis)、X 轴标签(Xaxis label)、Y轴标签(Y axis label)、主刻度(Major tick)、次刻度(Minor tick)和图例(Legend)等,如图 1-1-1 所示。
|
三、配图格式
科研论文中常见的插图格式有像素图和矢量图。
- 像素图(位图)是以单个像素为单位,通过对像素进行组合和排列,来显示图片格式。像素图放大到一定程度会失真。常见像素图格式包括 JPEG、PSD、PNG、TIFF。其中,JEPG 是一种常用的有损压缩图片格式,处理起来较容易,但像素分辨率低、清晰度差、色彩损失大。
- 矢量图的图像文件包含独立的分离图像,可以自由、无限制地进行重新组合,其特点是放大后图像不会失真,与分辨率无关。常见的矢量图格式包括 EPS、PDF、AI、SVG,其中,EPS 格式的图片文件小、显示质量高、色彩保真度高,印刷时的字样较为清晰,是常用的论文配图格式。
- 对于科研论文中每幅插图的尺寸,期刊往往不会有严格的要求, 保持可阅读性和整洁性、协调性和整体美观性。
四 色彩模式
常见色彩模式包括 RGB 色彩模式、CMYK 色彩模式和 HEX 色彩模式。
1 RGB 色彩模式
RGB 色彩模式是指通过混合红(Red)、绿(Green)、蓝(Blue)3 种颜色来表现各种色彩。是目前使用较为广泛的颜色系统。
|
2 CMYK 色彩模式
它是一种主要用于彩色印刷的四色模型,其中,C 表示青色(Cyan),M 表示品红色(Magenta),Y 表示黄色(Yellow),K 表示黑色(blacK)。RGB 色彩模式表示的颜色更多,但并不表示它们能够全部印刷出来。理论上,青、品红和黄色混合一起就可得黑色效果,但依照目前的工艺制造水平,混合后得到的效果为暗红色,因此,需要加入一种专门的黑墨来中和,即使用定位套版色(黑色)(Key Plate(Black)),以确保输出黑色。
|
3 HEX 色彩模式
HEX 色彩模式,又称十六进制色彩模式。是通过红、绿、蓝三原色的混合而产生各种颜色。
|
|
上述图表的程序代码如下:
|
从代码中可以看出,在上图中,当colors=[“#000000”,“#40D050”,“#F06B9B”,“#FFFFFF”],可以看出,000000为全黑,FFFFFF为全白。只需要对基于HEX 色彩模式的colors数值进行修改,就能得到不同的颜色。
五 配色策略
配色是科研论文配图绘制过程中的重要维度。本节介绍科研论文配图色轮配色、主题配额和色系配色 三中策略。
1 色轮模式
色轮(color wheel)又称色环,一般由 12 种基本颜色按照圆环方式排列组成。允许用户自行设计具有个人风格的配色方案。常见的色轮配色方案有单色配色方案(monochromaticcolor scheme)、互补色配色方案(complementary color scheme)、等距三角配色方案(triadiccolor scheme)和四角配色方案(tetradic color scheme)。颜色太多会影响可读性,因此通常不采用四色以上颜色。
|
2 主题模式
颜色主题是按照一定美学规律设计的,对其灵活使用可以提高插图的美观度。用户可根据自身绘图需求选择合适的颜色主题或自定义颜色主题。
|
期刊 | 颜色配置 |
---|---|
NPG | [“#E64B35”,“#4DBBD5”,“#00A087”,“#3C5488”] |
AAAS | [“#3B4992”,“#EE0000”,“#008B45”,“#631879”] |
NEJM | [“#BC3C29”,“#0072B5”,“#E18727”,“#20854E”] |
3 色系模式
绘图的一个关键就是颜色属性的选取和搭配。Matplotlib 库的颜色主题主要包括 3 种类型:单色系(sequential)、双色渐变色系(diverging)和多色系(qualitative)。图 1-2-14 所示为使用 Seaborn 库中 Tips 数据集绘制的单色系中的 ylgnbu 色系、双色渐变色系中的 seismic 色系和多色系中的set1 色系。
|
以上图例开源代码如下(编写时间:2022年2月04日 22:40,《科研论文配图绘制指南–基于Python》作者: 宁海涛)
import numpy as np
import pandas as pd
import seaborn as sns
import proplot as pplt
import matplotlib.pyplot as plt
from matplotlib import cm
from colorspacious import cspace_converter
from proplot import rc
rc["font.family"] = "Times New Roman"
rc["axes.labelsize"] = 13
rc['tick.labelsize'] = 11
rc["suptitle.size"] = 15
tips = sns.load_dataset("tips")
#使用Scienceplots包绘图主题绘制(需安装Scienceplots包(pip install SciencePlots),不同版本引用方式有所不同,请注意!)
#'' 单色系可视化绘制示例
with plt.style.context(['science']):
from proplot import rc
rc["xtick.minor.visible"] = False
rc["ytick.minor.visible"] = False
rc["xtick.major.pad"] =5
fig,ax = plt.subplots(figsize=(3,3.2),dpi=100,facecolor="w")
scatter = ax.scatter(x="total_bill",y="tip",c="tip",data=tips,ec="k",
cmap="YlGnBu")
for spine in ["top","right"]:
ax.spines[spine].set_visible(False)
ax.tick_params(top=False,right=False)
cax = ax.inset_axes([0.1, .85, 0.6, 0.05], transform=ax.transAxes)
colorbar = fig.colorbar(scatter, ax=scatter, cax=cax,orientation="horizontal")
colorbar.ax.tick_params(bottom=True,direction="in",labelsize=8,pad=3)
colorbar.ax.xaxis.set_ticks_position('top')
colorbar.outline.set_linewidth(.4)
ax.grid(False)
ax.set_ylim(0,12)
ax.set_xlabel("X Label")
ax.set_ylabel("Y Label")
plt.tight_layout()
plt.savefig(r'r"\第1章 科研论文配图的绘制与配色基础\图1-2-14 使用seaborn库中Tips数据集绘制的单色系、双色渐变色系和多色系可视化配图示例_a.pdf',bbox_inches='tight')
plt.savefig(r'r"\第1章 科研论文配图的绘制与配色基础\图1-2-14 使用seaborn库中Tips数据集绘制的单色系、双色渐变色系和多色系可视化配图示例_a.png',
bbox_inches='tight',dpi=300)
plt.show()
可以看出, 三张图的主要区别在于scatter中配色参数cmap的选择不同。配色映射表上有不同颜色对应的Camp赋值符号,具体可参加matplotlib网站或者在博客:http://t.csdn.cn/pdIzU或者《科研论文配图绘制指南–基于Python》开源学习资料https://github.com/datawhalechina/paper-chart-tutorial。
六 结论
色彩是论文绘图的重要元素。懂得了配色原理,尤其是这本书作者提供了大量开源代码,我们既可方便地通过现有工具进行配置,也可以通过手工编程直接修改颜色属性,进行配色和修色。