用Matplotlib画符合论文要求的图片

上半年写的一篇论文早在两个月前就已经收到录用通知,可前天上午忽然收到编辑的邮件说文中的波形图坐标、标签、刻度过小,不符合要求,要我重画。当时想死的心都有了,那么多图,从新调参数仿真太耗时间了,最后只得PS、画图工具齐上阵,花了整整一个下午加晚上才把八幅大图,共48幅小图。这些耗时费力的重复工做本该在一开始就能杜绝,只因经验不足。今天花了一上午时间把matplotlib库中关于axes的用法仔细看了一遍,收获颇丰。我只能说当初仍是太年轻了!python

Axes是matplotlib中最经常使用到的API,像Subplot这样的类都是Axes的子类。工具

ax = plt.subplot(111)
# 获取x轴刻度线
ticklines = ax.xaxis.get_ticklines()
# 获取x轴刻度标签
ticklabels = ax.xaxis.get_ticklabels()

tickline有多种方法,以下所示:

set_markersize 设置刻度线大小
set_markeredgewidth 设置刻度线宽度

ticklabel常见方法以下所示:字体

set_rotation 设置旋转角度
set_fontsize 设置字体大小
set_visible 设置可见性

图片的边框经过 ax.spines 获取,获得一个dict,包含'bottom', 'top', 'left', 'right',可经过 set_linewidth 方法设置边框线宽。spa

总结:code

在两栏排列的期刊论文中,若是图片中subplot有两列,则字体设置为24,刻度线大小设置为8,刻度线宽度设置为3,图片边框线宽设置为3,这种设置方式能使得插入word中的图片能清晰可见。对好比下所示。上图采用的是matplotlib默认的设置,在100%视图下刻度、标签都过小,下图是采用上述设置获得的波形图,能够看到,刻度、标签都依然很清晰,能符合论文要求。之前看到评论说matplotlib能绘制出版级的图片,当时还不觉得然,如今经历一番波折后算是领略到它的强大威力了。强大的工具只有在善于使用的人手里才能展示它的强大之处!blog