Python学习笔记(八)-(2)matplotlib作图之legend
2018-01-26 22:05
1011 查看
1. handles和labels
legend(*args, **kwargs) :(1)*args为可选参数,为了确定legend必须的两个对象:handles和labels。其中,handles是被标示的对象,labels是标示内容。
(2)**kwargs是其他选项。
代码:
#--------coding=GBK------------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3*np.pi,3*np.pi,100) y,z = np.sin(x)/x,-np.sin(x)/x m,n = 1/(1+np.exp(-x)),np.tanh(x) # help(plt.legend) #----------------------handles和labels----------------------------# plt.figure() Yplot = plt.plot(x,y,"r",label='sin(x)/x',linestyle='--') # 2D图 print(plt.gca()) handles, labels = plt.gca().get_legend_handles_labels() # 自动获取handles和labels print(handles==Yplot) # 一个图的时候才相等 print('handles = ',handles,'\n','labels = ',labels,'\n') # handle是图形对象,label是字符串 print(type(handles),type(labels)) # handles和labels都是list,这样的话顺序什么的都好调,甚至删除、增加都是可以的 plt.legend(handles,labels) # 调用legend()函数 plt.savefig('1.jpg')
输出:
AxesSubplot(0.125,0.11;0.775x0.77) True handles = [<matplotlib.lines.Line2D object at 0x000000000EA07588>] labels = ['sin(x)/x'] <class 'list'> <class 'list'>
1.jpg:
2. 单个legend
代码:#---------------------------单个legend--------------------------# #-------------方法一-------------# plt.figure() plt.subplot(1,2,1) Z1plot, = plt.plot(x,z,"b",label='sin(x)/x',linestyle='-.') # 逗号必须有 plt.legend() # 默认用get_legend_handles_labels获取handles和labels #-------------方法二-------------# plt.subplot(1,2,2) Z2plot, = plt.plot(x,z,"b",linestyle='-.') plt.legend(handles = [Z2plot],labels = ['LaLa']) # 自己给出handles和labels plt.savefig('2.jpg')
2.jpg:
3.多个legend
代码:#---------------------------多个legend--------------------------# #------------方法一----------# plt.figure() plt.subplot(1,3,1) Mplot, = plt.plot(x,m,"c",label='sigmoid',linewidth=2) Nplot, = plt.plot(x,n,"m",label='tanh') Mlegend = plt.legend(handles=[Mplot],loc=2) # 先创建一个artist plt.gca().add_artist(Mlegend) # 再添加一个artist plt.legend(handles=[Nplot],loc=4) # 位置默认是重合的,所以需要用loc设置一下 #------------方法二----------# plt.subplot(1,3,2) Oplot, = plt.plot(x,m,"k.") Pplot, = plt.plot(x,n,"y") plt.legend(handles=[Pplot,Oplot],labels=['tanh','sigmoid']) # 给出handles和labels,注意可以换顺序 #------------方法三----------# plt.subplot(1,3,3) plt.plot(x,m,"y",label='sigmoid',linewidth=1) plt.plot(x,n,"g",label='tanh') plt.legend() # 直接用默认的 plt.savefig('3.jpg')
3.jpg:
4.legend位置
代码:#---------------------------legend的位置--------------------------# plt.figure() def Draw(i): plt.subplot(3,3,i) plt.legend(handles = Yplot,labels=str(i),loc=i) for i in range(1,10): Draw(i) plt.savefig('4.jpg')
4.jpg:
5.legend样式
待续。。。6.总结
理解和会用handles和labels是关键7.参考
参考:matplotlib官网版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- python数据挖掘学习笔记】十.Pandas、Matplotlib、PCA绘图实用代码补充
- 【Python学习笔记 】12.可视化库Matplotlib(下)
- python 制作图表 matplotlib - 千月的python linux 系统管理指南学习笔记(18)
- Python学习笔记(4)--Matplotlib同时画柱状图与折线图
- 用matplotlib来画图-python学习笔记16
- matplotlib学习笔记--Legend
- python数据分析学习笔记-Numpy-Matplotlib-Pandas
- 【python学习笔记】12:用matplotlib绘制3D函数图像
- python Matplotlib 学习笔记(1)
- python Matplotlib 学习笔记(2)
- python学习笔记(matplotlib下载安装)
- Python学习笔记:Matplotlib绘图基础
- 雾山的Python学习笔记---Matplotlib的安装
- python学习笔记(1)之如何在python3.x下安装PIL、numpy以及matplotlib
- Python-学习笔记(三)——开发环境搭建(numpy,scipy,matplotlib)
- 【Python学习笔记 】11.可视化库Matplotlib(上)
- matplotlib作图学习笔记1
- matplotlib 学习笔记(二)
- python+NLTK 自然语言学习处理三:如何在nltk/matplotlib中的图片中显示中文
- 【python笔记】使用matplotlib,pylab进行python绘图