Pythonmatplotlib画图时图例说明(legend)放到图像外
侧详解
⽤python的matplotlib画图时,往往需要加图例说明。如果不设置任何参数,默认是加到图像的内侧的最佳位置。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
plt.legend()
plt.show()
这样的结果如图所⽰:
如果需要将该legend移到图像外侧,有多种⽅法,这⾥介绍⼀种。
在plt.legend()函数中加⼊若⼲参数:
plt.legend(bbox_to_anchor=(num1, num2), loc=num3, borderaxespad=num4)
bbox_to_anchor(num1,num2)表⽰legend的位置和图像的位置关系,num1表⽰⽔平位置,num2表⽰垂直位置。num1=0表⽰legend位于图像的左侧垂直线(这⾥的其它参数设置:num2=0,num3=3,num4=0)。
num1=1表⽰legend位于图像的右侧垂直线(其它参数设置:num2=0,num3=3,num4=0)。
为了美观,需要将legend放于图像的外侧,⽽⼜距离不是太⼤,⼀般设num1=1.05。
num2=0表⽰legend位于图像下侧⽔平线(其它参数设置:num1=1.05,num3=3,num4=0)。
num2=1表⽰legend位于图像上侧⽔平线(其它参数设置:num1=1.05,num3=3,num4=0)。
所以,如果希望legend位于图像的右下,需要将num2设为0,位于图像的右上,需要将num2设为1。
由于legend是⼀个⽅框,bbox_to_anchor=(num1, num2)相当于表⽰⼀个点,那么legend的哪个位置位于这个点上呢。参数num3就⽤以表⽰哪个位置位于该点。
loc参数对应
Location String Location Code
'best'0
'upper right'1
'upper left'2
'lower left'3
'lower right'4
'right'5
'center left'6
'center right'7
'lower center'8
'upper center'9
'center'10
所以,当设bbox_to_anchor=(1.05,0),即legend放于图像右下⾓时,为美观起见,需要将legend的左下⾓,即'lower left'放置该点,对应该表的‘Location Code'数字为3,即参数num3置为3或直接设为‘lower left';⽽当设bbox_to_anchor=(1.05,1),即legend放于图像右上⾓时,为美观起见,需要将legend的左上⾓,即'upper left'放置该点,对应该表的‘Location Code'数字为2,即参数num3置为2或直接设为‘upper left'。
根据上的解释,参数num4表⽰轴和legend之间的填充,以字体⼤⼩距离测量,默认值为None,但实际操作中,如果不加该参数,效果是有⼀定的填充,下⾯有例图展⽰,我这⾥设为0,即取消填充,具体看个⼈选择。
这是将legend放于图像右下的完整代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
plt.legend(bbox_to_anchor=(1.05, 0), loc=3, borderaxespad=0)
plt.show()
效果展⽰:
这⾥legend的‘lower left'置于(1.05, 0)的位置。
如果不加⼊参数num4,那么效果为:
legend稍靠上,有⼀定的填充。
这是将legend放于图像右上的完整代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0) plt.show()
效果展⽰:
matplotlib中subplot
这⾥legend的‘upper left'置于(1.05, 0)的位置。
如果不加⼊参数num4,那么效果为:
legend稍靠下。
以上这篇Python matplotlib画图时图例说明(legend)放到图像外侧详解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。