您的位置:首页 > 编程语言 > PHP开发

matplotlib模块数据可视化-设置图例

2017-08-15 11:23 239 查看
1 说明

由于这一节写好后发表,这边文章全部变成了乱码,作者直接崩溃了,这一节不想再写一遍了,重新简单的放下代码和一张效果图,剩下的自行尝试。

2 第一种设置图例的方法

x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2

# plt.figure()
import numpy as np
import matplotlib.pyplot as plt
#  Return value is a list of lines that were added. 将会返回一个line的list
plt.plot(x,y1,label='$2x+1$')
plt.plot(x,y2,color='red',linewidth=2,linestyle='--',label='$x^2$')
plt.legend()
plt.show()


3 第二种图例

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
# 2> 直接传入一个元祖,自动分配标示
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth=2,linestyle='--')
plt.legend(('$2x+1$','$x^2$'))
plt.show()


4 第三种图例

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
# 根据绘图时返回回来的line对应指定,传入元祖或list都行
# ------------------------------------------------
# l1和l2是list,此时里面也各有一条线,所有用[0]索引取出
# plt.legend((l1[0],l2[0]),('x data','y data'),loc=1)
# ------------------------------------------------
#  Return value is a list of lines that were added. 将会返回一个line的list,所以接收返回值的时候可以默认解出来首个元素
# 在后面加上逗号l1,   l2,
l1, = plt.plot(x,y1)
l2, = plt.plot(x,y2,color='red',linewidth=2,linestyle='--')
plt.legend([l1, l2], ['$2x+1$','$x^2$'], loc='center', fontsize='small')
plt.show()


5 图例的参数

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
# 1> loc参数,可以对应字符串,也可以是code值,可选的有 loc='best' 与 loc=0相同
#   Location String   Location Code
#   ===============   =============
#   'best'            0     最优,覆盖有效图形最少的地方
#   'upper right'     1     右上角
#   'upper left'      2     左上角
#   'lower left'      3     左下角
#   'lower right'     4     右下角
#   'right'           5     右边  与7相同
#   'center left'     6     左边中部
#   'center right'    7     右边中部
#   'lower center'    8     下面中部
#   'upper center'    9     顶部中部
#   'center'          10    正中
#   ===============   =============

# 2> *fontsize*:  'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'xx-large'
# 标注的字体大小

# 3> bbox_to_anchor设置锚点的位置(0.5,1),标示横轴中间,竖轴顶部作为标识的右上角
# loc = 'lower left', bbox_to_anchor = (0.5, 0.5)  把标识图的左下角对应到整个图片的中点处
# loc = 'upper right', bbox_to_anchor = (0.5, 0.5)  把标识图的右上角对应到整个图片的中点处

plt.legend([l1,l2],['x data','y data'],fontsize='small' ,loc = 'upper right', bbox_to_anchor = (0.5, 0.5))
plt.show()




由于写过一次发布后乱码了,所以又简单的写了一下,各位可以自行尝试,如有疑问,可留言交流,谢谢理解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: