Matplotlib是Python中最著名的绘图库,使用
matplotlib.pyplot
来绘制论文实验部分所需的折线图。
基础知识
所涉及到的要素有:
- 一个figure包含两个子图,用subplot实现
- 图片直接生成展示或者保存成png格式,用plt.show()或者plt.savefig()
- 使用plt.savefig('./IoU.png', format='png', transparent=True)保存图片为透明背景。
- 折线图的画法,点、线形状、颜色,参考Matplotlib点、线形状及颜色
- 图的标题,图的坐标轴刻度,x、y轴标签
- 图的标注,用plt.legend()
代码实现
具体代码如下:
# -*- coding: utf-8 -*-
"""
PROJECT_NAME: PLOT
FILE_NAME: article
AUTHOR: welt
E_MAIL: [email protected]
DATE: 2022/11/29
"""
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 显示负号
data = pd.read_csv(r'Kappa.csv')
x = np.array(data['Step'])
Res_UNet = np.array(data['Res-UNet'])
U_Net = np.array(data['U-Net'])
DeeplabV3 = np.array(data['DeeplabV3'])
# 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=(6, 3))
plt.grid(linestyle="--") # 设置背景网格线为虚线
ax = plt.gca()
ax.spines['top'].set_visible(False) # 去掉上边框
ax.spines['right'].set_visible(False) # 去掉右边框
plt.plot(x, Res_UNet, marker='.', color="#5684A6", label="Res-UNet", linewidth=1)
plt.plot(x, U_Net, marker='.', color="#799762", label="U-Net", linewidth=1)
plt.plot(x, DeeplabV3, marker='.', color="#CD332D", label="DeeplabV3", linewidth=1)
group_labels = ['0', '200', '400', '600', '800', '900'] # x轴刻度的标识
plt.xticks(x, fontsize=12, fontweight='bold') # 默认字体大小为10
ax.set_xticks([0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000])
ax.set_xticklabels([0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000])
plt.yticks(fontsize=12, fontweight='bold')
plt.title("不同模型梯田的IoU对比", fontsize=12, fontweight='bold') # 默认字体大小为12
plt.xlabel("Step(Batch)", fontsize=13, fontweight='bold')
plt.ylabel("IoU", fontsize=13, fontweight='bold')
plt.xlim(0, 900) # 设置x轴的范围
plt.ylim(0.2, 1)
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.tight_layout()
plt.savefig('./IoU.png', format='png', transparent=True)
plt.show()
结果展示
绘制出的折线图如下所示:
标签:plt,bold,Matplotlib,fontweight,fontsize,折线图,绘制,legend From: https://www.cnblogs.com/tangjielin/p/16950004.html