4.python資料分析與展示-----Matplotlib庫入門
阿新 • • 發佈:2018-12-31
1.Matplotlib庫介紹
Python優秀的資料 視覺化第三方庫
2.Matplotlib庫的使用
Matplotlib庫由各種視覺化類構成,內部結構複雜,受Matlab啟發,matplotlib.pyplot是繪製各類視覺化圖形的命令子庫,相當於快捷方式。
import matplotlib.pyplot as plt
plt.plot()只有一個輸入列表或陣列時,引數被當作Y軸,X軸以索引自動生成
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("Grade") plt.savefig("test",dpi=600) #PNG檔案 plt.show()
plt.savefig()將輸出圖形儲存為檔案,預設PNG格式,可以通過dpi修改輸出質量
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("Grade") plt.savefig("test",dpi=600)#PNG檔案 plt.show()
plt.plot(x,y)當有兩個以上引數時,按照X軸和Y軸順序繪製資料點
import matplotlib.pyplot as plt plt.plot([0,2,4,6,8],[3,1,4,5,2]) plt.ylabel("Grade") plt.axis([-1,10,0,6]) plt.show()
import matplotlib.pyplot as plt import numpy as np def f(t): return np.exp(-t)*np.cos(2*np.pi*t) a = np.arange(0.0,5.0,0.02) plt.subplot(211) plt.plot(a,f(a)) plt.subplot(2,1,2) plt.plot(a,np.cos(2*np.pi*f(a)),'r--') plt.show()
3.pyplot的plot()函式
plt.plot(x,y, format_string, **kwargs)
∙ x : X軸資料,列表或陣列,可選
∙ y :Y軸資料,列表或陣列
∙format_string: 控制曲線的格式字串,可選
∙ **kwargs: 第二組或更多(x,y,format_string)
當繪製多條曲線時,各條曲線的x不能省略
import matplotlib.pyplot as plt import numpy as np a =np.arange(10) plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5) plt.show()
顏色字元、風格字元和標 記字元可以組合使用,如下例
import matplotlib.pyplot as plt import numpy as np a =np.arange(10) plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*', a,a*4.5,'b-.') plt.show()
4.pyplot的中文顯示
①pyplot並不預設支援中文顯示,需要rcParams修改字型實現
import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' #'SimHei'是黑體 plt.plot([3,1,4,5,2]) plt.ylabel("縱軸(值)") plt.savefig("test",dpi=600) #PNG檔案 plt.show()
import matplotlib.pyplot as plt import matplotlib import numpy as np matplotlib.rcParams['font.family']='STSong' matplotlib.rcParams['font.size']=20 a=np.arange(0.0,5.0,0.02) plt.ylabel("縱軸:振幅") plt.xlabel("橫軸:時間") plt.plot(a,np.cos(2*np.pi*a),'r--') plt.show()
②在有中文輸出的地方,增加一個屬性:fontproperties
5.pyplot的文字顯示
6.pyplot的子繪圖區域
plt.subplot2grid((3,3),(0,0),colspan=3) plt.subplot2grid((3,3),(1,0),colspan=2) plt.subplot2grid((3,3),(1,2),rowspan=2) plt.subplot2grid((3,3),(2,0)) plt.subplot2grid((3,3),(2,1))