Draw training curves via Matplotlib.

import matplotlib.pyplot as plt

本文记录了使用Matplotlib库制作一个用在论文中的pdf格式训练曲线图像的制作流程。

①创建一个figure对象,并指定图像大小:

fig = plt.figure(figsize=[10, 8]) #用来控制图像大小 先width 后height

②绘制曲线:

plt.plot(x, y, label='X', color='red', linewidth=1.1, marker='s', markersize=12, alpha=1)

③平滑曲线:采用tensorboard中的计算方式,指数加权滑动平均:

def smooth(data, weight=0.8):
    last = data[0]
    res= []
    for point in data:
        smoothed_val = last * weight + (1 - weight) * point
        res.append(smoothed_val)
        last = smoothed_val
    return res

④设置坐标轴;

需要注意的是,如果坐标名称需要显示$10^3$,则需要使用:'$10^3$'

⑤设置背景栅格:

plt.grid(linestyle='--', color='red', )
# linestyle也简写为ls;color也简写为c

⑥设置图例:

font1 = {'family': 'Times New Roman',
         'weight': 'normal',
         'size': 20,
         }
plt.legend(loc='lower right', prop=font1)

图例位置也可以用数字代替,见下表:

⑦去白边:

fig.tight_layout()

⑧保存为pdf格式:

fig.savefig("XXX.pdf", format='pdf', transparent=True, dpi=300, pad_inches=0)