Matplotlib库基础_一
Matplotlib库基础
•pyplot绘制坐标
- plt.plot(x,y,format_string,**kwargs)
x:x轴数据,列表或数组,可选
y:y轴数据,列表或数组
format_string:控制曲线的格式字符串,可选
**kwargs:第二组或更多(x,y,format_string)
当控制多条曲线时,各x不能省略import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.xlabel('x') plt.ylabel('y') plt.axis([-1,10,0,6]) #默认png文件,可通过dpi改变输出质量 plt.save('test',dpi=600) plt.save('test.jpg') plt.show()import matplotlib.pyplot as plt import numpy as np x = np.arange(0,12,2) plt.plot(x,x*1.5,'*',x,x*2.5,'go:',x,x*3.5,'^--',x,x*4.5,'rx-.') plt.show()
- 中文显示
1.全局 利用matplotlib.rcParams
import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams['font.family'] = 'SimHei' matplotlib.rcParams['font.size'] = 10 plt.plot([3,1,4,5,2]) plt.ylabel("纵轴(值)") plt.xlabel("横轴(变量)") plt.show()2.局部,利用fontproperties
plt.plot([3,1,4,5,2],'r-.') plt.title('坐标轴',fontproperties='SimHei',fontsize=20) plt.ylabel('纵轴(值)',fontproperties='SimHei',fontsize=10) plt.xlabel('横轴(变量)',fontproperties='SimHei',fontsize=10) # plt.text(2,1,r'$\mu=100$',fontsize=15) #xy是箭头所在位置 xytext是文本所在位置 #shrink 箭头到文字有空白 plt.annotate(r'$\mu=100$',xy=(3,3),xytext=(3,1.5),\ arrowprops=dict(facecolor='black',shrink=0.1,width=2)) # #表格 plt.grid(True) plt.show()View Codeimport numpy as np import matplotlib.pyplot as plt x = np.arange(0,12,2) y = x*0.5 plt.axis([0,10,0,10]) print(x) print(y) plt.plot(x,y,'r-.') plt.title("Label") plt.xlabel("X-横轴",fontproperties='SimHei',fontsize=15) plt.ylabel("Y-纵轴",fontproperties='SimHei',fontsize=15) plt.text(8,8,"这是一个坐标轴",fontproperties='SimHei',fontsize=10) plt.annotate('Y=X*0.5',fontsize=10,xy=(5,2.5),xytext=(5,5),\ arrowprops=dict(facecolor='black',shrink=0.1,width=0.5)) plt.gride() plt.show()
•pyplot的子绘图区域
plt.subplot(xyz) / plt.subplot(x,y,z)共有x行y列,处于第z个import matplotlib.pyplot as plt plt.subplot(2,2,1) plt.subplot(2,2,2) plt.subplot(223) plt.subplot(224) plt.show()
- 自定义子区域
1.plt.subplot2grid((m,n),(x,y),colspan,rowspan)第一个元组:把整个画布分成m行n列
第二个元组:此自定义网格的起始位置
colspan占列宽度 rowspan占行宽度import matplotlib.pyplot as plt plt.subplot2grid((3,3),(0,0),colspan=3) plt.subplot2grid((3,3),(1,0),colspan=2) plt.subplot2grid((3,3),(2,0)) plt.subplot2grid((3,3),(2,1)) plt.subplot2grid((3,3),(1,2),rowspan=2) plt.show()
2.利用gridspec.GridSpec
gridspec.GridSpec(m,n)把整个画布分成m行n列import matplotlib.gridspec as grisdpec gs = grisdpec.GridSpec(3,3) plt.subplot(gs[0,:]) plt.subplot(gs[1,:2]) plt.subplot(gs[2,:1]) plt.subplot(gs[2,1:2]) plt.subplot(gs[1:,-1]) plt.show()