【matplotlib】matplotlib使用详解 使用python绘制漂亮的论文数据图

预备知识

Matplotlib 是 Python 中最受欢迎的数据可视化软件包之一,支持跨平台运行,它是 Python 常用的 2D 绘图库,同时它也提供了一部分 3D 绘图接口。Matplotlib 通常与 NumPy、Pandas 一起使用,是数据分析中不可或缺的重要工具之一。

全面了解Matplotlib,可以查看以下教程:

Matplotlib教程(非常详细)

这是Matplotlib提供的几十个使用示例:

Examples — Matplotlib 3.5.0 documentation

基本概念

这是Matplotlib官网提供的一张示意图,它标识了作图中的基本概念,有利于理解后面的作图代码

【matplotlib】matplotlib使用详解 使用python绘制漂亮的论文数据图

Figure – 画板Title – 标题X axis label – X轴标签Y axis label – Y轴标签Legend – 图例Major tick label – 主刻度标签Minor tick label – 次刻度标签Grid – 网格Line (line plot) – 线Markers (scatter plot) – 标记Major tick – 主刻度Minor tick – 次刻度Axes – 轴Spines – 脊

示例代码

下面通过示例代码说明matplotlib的使用

这里有两个不错的参考代码,本文的示例代码由此改进而来

利用python的matplotlib包绘制科研论文中的插图(可以保存为矢量图) – 雨后观山色 – 博客园

matplotlib绘制符合论文要求的图片实例(必看篇)_Python_脚本之家

coding=utf-8

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Arial']  # 如果要显示中文字体,则在此处设为:SimHei
plt.rcParams['axes.unicode_minus'] = False  # 显示负号

x = np.array([1, 2, 3, 4, 5, 6])
SIFT = np.array([12.9749694, 13.9357018, 14.7440844, 16.482254, 18.720203, 18.687582])
AKAZE = np.array([12.1044724, 12.9757383, 13.9754183, 15.686206, 18.367847, 19.144531])
ORB = np.array([12.0205495, 12.6509762, 13.1876223, 14.380781, 16.004548, 17.9298])

label在图示(legend)中显示。若为数学公式,则最好在字符串前后添加"$"符号
color:b:blue、g:green、r:red、c:cyan、m:magenta、y:yellow、k:black、w:white、、、
线型:-  --   -.  :    ,
marker:.  ,   o   v    <    *    +    1

plt.figure(figsize=(10, 5)) # 设置图像大小
plt.grid(linestyle="--")  # 设置背景网格线为虚线
ax = plt.gca() #gca就是get current axes 获取当前坐标轴
ax.spines['top'].set_visible(False)  # 去掉上边框
ax.spines['right'].set_visible(False)  # 去掉右边框

plt.plot(x, SIFT, marker='o', color="blue", label="SIFT", linewidth=1.5)
plt.plot(x, AKAZE, marker='o', color="green", label="AKAZE", linewidth=1.5)
plt.plot(x, ORB, marker='o', color="red", label="ORB", linewidth=1.5)

group_labels = ['Top 0-5%', 'Top 5-10%', 'Top 10-20%', 'Top 20-50%', 'Top 50-70%', ' Top 70-100%']  # x轴刻度的标识
plt.xticks(x, group_labels, fontsize=12, fontweight='bold')  # 默认字体大小为10
plt.yticks(fontsize=12, fontweight='bold')
plt.title("Example", fontsize=13, fontweight='bold')  # 默认字体大小为12
plt.xlabel("Performance Percentile", fontsize=13, fontweight='bold')
plt.ylabel("Accuracy", fontsize=13, fontweight='bold')
plt.xlim(0.9, 6.1)  # 设置x轴的范围
plt.ylim(10, 22)

plt.legend()          #显示各曲线的图例
plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=12, fontweight='bold')  # 设置图例字体的大小和粗细

plt.savefig('./filename.svg', format='svg')  # 建议保存为svg格式,再用在线转换工具转为矢量图emf后插入word中
plt.show()

绘图效果

【matplotlib】matplotlib使用详解 使用python绘制漂亮的论文数据图

在具体绘图中,我们主要关注以下特性:

1.颜色 Colors 2. 线样式 3. 标记样式 4. 刻度 5. 图例

这些内容在这篇文章里有比较好的介绍 :

期刊论文写作之【python matplotlib 画图设置】_Csclion的博客-CSDN博客

Matplotlib画各种论文图_等一杯咖啡的博客-CSDN博客

Matplotlib 常用画图命令总结:使用 Python 在论文中画出一手漂亮的数据图 – 知乎

图像保存

最后是图像保存,这里摘抄前面参考文献的话作为记录

利用matplotlib包绘图,保存svg,再转成emf矢量图贴在文章里

用Python作图保存的图 矢量格式为svg、eps、pdf的,不能直接插入word。

Word本身只能接受wmf,emf格式的矢量图

所以svg的要借助其他软件转换。如用visio,illustrator等。在线转换工具。SVG to EMF | CloudConvert

Original: https://blog.csdn.net/flyconley/article/details/121466061
Author: 一棵栗子树
Title: 【matplotlib】matplotlib使用详解 使用python绘制漂亮的论文数据图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/767859/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球