在撰写论文的时候发现论文需要上传清晰的pdf格式的图,和我们平时跑实验用的图不是一个概念。需要根据排版的格式进行调整,改大小,清晰度,去白边等操作,故在此整理记录。

图片大小

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

画折线图

plt.plot(x_axis,data, label="XXX", color="red", linewidth=1.1, marker='s', markersize=12)

x_axis 是用来设置x轴坐标显示的标签
label 给线加上图例说明
color 线颜色
linewidth 线宽度
marker 折线顶点标识 s:标识方块,也有三角V,原点o等其他
alpha 用来调节线条透明度

平滑曲线

因为我用来画的主要是机器学习里面的图随着迭代次数增加,相关曲线会频繁震荡,画出来的图会不好看,因此就需要进行进行平滑处理,下面的平滑函数使用了,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

这时候就可以画出下面这种图
【Matpyplot】绘制论文用图表

字符格式设置

为x轴y轴添加说明,同时可以改变字体大小

    plt.ylabel('Reward',fontsize=25)
    plt.xlabel('Training epochs',fontsize=25)

控制图例大小和位置,有的时候因为数据太多产生的图例可能会导致,图例挡住图像,这时候就可使用如下代码修改图例的大小和位置

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

loc可以控制图例具体位置,prop控制字体大小格式

去白边

    fig = plt.gcf()
    plt.margins(0, 0)
    fig.tight_layout()

plt.gcf可以取到fig图,然后根据fig图,清除到多余的白框

导出PDF

为了导出论文能使用的图片因此就需要使用pdf格式,同时设置一个大的dpi

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

相关文章: