购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1-2-8 图例legend( )

本章所建立的图表,应该说已经很好了,缺点是缺乏各种线条代表的意义,在Excel中称图例(legend),下列笔者将直接以实例说明。

程序实例ch1_13.py: 为ch1_12.py建立图例。

执行结果

这个程序最大不同在第10~12行,下列是以第10行解释。

上述调用plt.plot( )时需同时设定 label ,最后使用第13行的方式执行legend( )图例的调用。其中参数loc可以设定图例的位置,可以有下列设定方式:

如果省略loc设定,则使用预设‘best’,在应用时可以使用设定整数值,例如:设定loc=0与上述效果相同。若是顾虑程序可读性,建议使用文字字符串方式设定,当然也可以直接设定数字。

程序实例ch1_13_1.py: 在ch1_13.py的基础上省略loc设定。

执行结果 与ch1_13.py相同。

程序实例ch1_13_2.py: 在ch1_13.py的基础上设定loc=0。

执行结果 与ch1_13.py相同。

程序实例ch1_13_3.py: 在ch1_13.py的基础上设定图例在右上角。

执行结果 下方左图。

程序实例ch1_13_4.py: 在ch1_13.py的基础上设定图例在左边中央。

执行结果 如上右图。

经过上述解说,我们已经可以将图例放在图表内了。如果想将图例放在图表外,需要先理解坐标,在图表内左下角位置坐标是(0,0),右上角位置坐标是(1,1),概念如下:

首先需使用bbox_to_anchor( )当作legend( )的一个参数,设定锚点(anchor),也就是图例位置,例如:如果我们想将图例放在图表右上角外侧,需设定loc=‘upper left’,然后设定bbox_to_anchor(1,1)。

程序实例ch1_13_5.py: 在ch1_13.py的基础上将图例放在图表右上角外侧。

执行结果 下方左图。

上述最大的缺点是由于图表与Figure 1的留白不足,造成无法完整显示图例。matplotlib模块内有tight_layout( )函数,可利用设定 pad 参数在图表与Figure 1间设定 留白

程序实例ch1_13_6.py: 设定pad=7,重新设计ch1_13_5.py。

执行结果 可参考如上右图。

很明显图例显示不完整的问题改善了。如果将pad改为h_pad/w_pad可以分别设定高度/宽度的留白。 mCpzY6TlrPmzp6+jAL70o38qLq6UAni+qulr5RpS3+CmI6WkEi1hqMqSbCd0FP2R

点击中间区域
呼出菜单
上一章
目录
下一章
×