在撰写论文的时候发现论文需要上传清晰的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
这时候就可以画出下面这种图
字符格式设置
为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)