本文是根据 datawhale 开源科研论文配图绘制指南 做的笔记
第一章内容 科研论文绘制基础和配色基础
一、绘制工具及其重要特征
Matplotlib
python的可视化绘图工具
优点:提供几十种绘图函数,用户可定制视觉样式和排版布局
缺点:面向对象的绘制语法学习成本高、便捷性和逻辑性不如R的ggplot2
Seaborn
Python的可视化绘图工具,在Matplotlib上进行封装,Matplotlib中大多数绘图函数的参数都可以在Seaborn绘图函数中使用。学习成本比Matplotlib低。
Proplot
是Matplotlib面向对象绘图方法的高级封装库,整合了cartopy/Basemap/地图库/xarray和pandas,可弥补Matplotlib的部分缺陷,让使用者拥有更顺滑的绘图体验和绘图主题。
由于是个人开发,更新频率不是太高。
注:目前不支持3.5版本系列的Matplotlib。
SciencePlots
专门用于科研论文绘图的第三方工具包,提供了主流英文科技期刊(Nature、Science和IEEE等)的Matplotlib图样式(绘图主题)(Matplotlib Styles)。
二、绘图代码分析
1.1.1 科研论文配图基本构成
源代码:
import numpy as np
import pandas as pd
import seaborn as sns
import proplot as pplt
import matplotlib.pyplot as plt
from proplot import rc
rc["font.family"] = "Times New Roman"
rc["axes.labelsize"] = 15
rc['tick.labelsize'] = 13
rc["suptitle.size"] = 15
plt.style.use('science') # 使用 'science' 风格的样式,需要安装 SciencePlots 库
data = pd.read_excel(r"基本构成示意绘图数据.xlsx") # 从 Excel 文件中读取数据
fig = pplt.figure(figsize=(4.5, 3.5)) # 创建一个大小为 4.5x3.5 的图像
ax = fig.subplot() # 添加一个子图
ax.format(abc='(a.)', abcloc='ul', abcsize=20, # 设置图表标签、位置、字体样式
xlabel='Time', ylabel='Values', # 设置坐标轴标签文字
xlim=(-2, 40), ylim=(-8, 30)) # 设置坐标轴范围
selsect = ["A", "B", "C", "D"] # 数据点的类型
colors = ["#2FBE8F", "#459DFF", "#FF5B9B", "#FFCC37"] # 绘制不同类型数据使用的颜色
for index, color in zip(selsect, colors):
data_selcet = data.loc[data['type'] == index, :] # 根据不同类型选择数据
ax.errorbar(x=data_selcet["time"], y=data_selcet["mean"], yerr=data_selcet["sd"],
color="k", linewidth=1, marker='o', ms=10, mew=1, mec='k', mfc=color, capsize=5, label=index)
# 在图中添加误差线和散点,并设置不同颜色
ax.legend(ncols=4, frame=True, loc='t') # 添加图例
#fig.save(r"\第1章 科研论文配图的绘制与配色基础\\图1-1-1 科研论文配图基本构成示意图.svg")
# 保存图像,注释掉了保存命令
plt.show() # 显示图像