matplotlib中subplot⽤Matplotlib画符合论⽂要求的图⽚
上半年写的⼀篇论⽂早在两个⽉前就已经收到录⽤通知,可前天上午突然收到编辑的邮件说⽂中的波形图坐标、标签、刻度太⼩,不符合要求,要我重画。当时想死的⼼都有了,那么多图,重新调参数仿真太耗时间了,最后只得PS、画图⼯具齐上阵,花了整整⼀个下午加晚上才把⼋幅⼤图,共48幅⼩图。这些耗时费⼒的重复⼯作本该在⼀开始就能杜绝,只因经验不⾜。今天花了⼀上午时间把matplotlib库中关于axes的⽤法仔细看了⼀遍,收获颇丰。我只能说当初还是太年轻了!
Axes是matplotlib中最常⽤到的API,像Subplot这样的类都是Axes的⼦类。
ax = plt.subplot(111)
# 获取x轴刻度线
ticklines = _ticklines()
# 获取x轴刻度标签
ticklabels = _ticklabels()
tickline有多种⽅法,如下所⽰:
set_markersize设置刻度线⼤⼩
set_markeredgewidth设置刻度线宽度
ticklabel常见⽅法如下所⽰:
set_rotation设置旋转⾓度
set_fontsize设置字体⼤⼩
set_visible设置可见性
图⽚的边框通过 ax.spines 获取,得到⼀个dict,包含'bottom', 'top', 'left', 'right',可通过 set_linewidth ⽅法设置边框线宽。
总结:
在两栏排列的期刊论⽂中,如果图⽚中subplot有两列,则字体设置为24,刻度线⼤⼩设置为8,刻度线宽度设置为3,图⽚边框线宽设置为3,这种设置⽅式能使得插⼊word中的图⽚能清晰可见。对⽐如下所⽰。上图采⽤的是matplotlib默认的设置,在100%视图下刻度、标签都太⼩,下图是采⽤上述设
置得到的波形图,可以看到,刻度、标签都依然很清晰,能符合论⽂要求。以前看到评论说matplotlib能绘制出版级的图⽚,当时还不以为然,现在经历⼀番波折后算是领略到它的强⼤威⼒了。强⼤的⼯具只有在善于使⽤的⼈⼿⾥才能展现它的强⼤之处!