Python之matplotlib入門教程
matplotlib庫作為數值分析的一大利器,想必很多小夥伴都會經常用到吧。
最近在使用matplotlib對數據進行畫圖,剛開始接觸這個庫上網搜關於它的教程,發現網上的教程都還存在一些不足,所以寫下這篇文章希望為大夥入門matplotlib提供一些幫助,也鞏固鞏固自己這幾天學到的知識。
廢話不多說,直接進入正題。
介紹
Matplotlib是一個Python 2D繪圖庫,可以跨平台生成各種硬拷貝格式和互動式環境的出版品質量圖。Matplotlib可用於Python腳本,Python和IPythonshell,jupyter筆記本,Web應用程序伺服器和四個圖形用戶界面工具包。通過 Matplotlib,開發者可以僅需要幾行代碼,便可以生成繪圖,直方圖,功率譜,條形圖,錯誤圖,散點圖等。(引用於百度百科和matplotlib官方文檔)
安裝
在命令提示符(cmd)中輸入 pip isntall matplotlib 並回車確認
當顯示Successfully installed xxxxx就代表安裝成功了。
使用
一個簡單的例子
#導入必要的模塊import numpy as npimport matplotlib.pyplot as plt#錄入身高與體重數據height = [170,179,159,160,180,164,168,174,160,183]weight = [57,62,47,67,59,49,54,63,66,80]plt.scatter(height,weight,s=40,c=r,marker=.) #散點圖生成plt.xlabel(height(cm)) # plt.xlabel 設置x軸標籤plt.ylabel(weight(kg)) # plt.ylabel 設置y軸標籤plt.title(Test) #plt.title 設置圖像標題plt.show() #顯示圖片
結果
其中scatter的作用是生成散點圖scatter函數原型:
plt.scatter(x, y, s=20, c=r , marker = . ,camp=None, norm=None ,vim=None ,vmax=None ,alpha=None,linewidths=None,verts=None,edgecolors=None,hold=None,data=None,**kwargs)
- x,y :分別輸入x和y軸對應數據組
- s :點的大小(面積),可選,默認值20
- c :點的顏色,可選,默認c=『b』 例:b→blue r→red k→black y→yellow g→green w→while
- marker :點的形狀,可選,默認『o』 這個點的形狀可謂千奇百怪,想多了解的朋友可以看看這裡,這篇文章有各種markerstyle參數及其對應的點的形狀。
- cmap :一個Colormap實例或註冊名稱。可選,默認:None
- norm :數據亮度,float類型範圍0-1,可選,默認:None 如果None,使用默認值normalize()。
- vmin,vmax:vmin並且vmax與norm亮度數據的歸一化結合使用。如果是None,則使用顏色數組的最小和最大值。注意:如果你通過一個norm實例,你的設置vmin,並vmax會被忽略。可選,默認:None
- alpha :點的透明度,範圍0-1,值越小越透明。可選,默認None
- linewidths :線寬。可選,默認None。可輸入標量或數組,若None,則使用lines.linewidth
- verts :(x,y)的順序,可選,默認None。如果marker為None,則這些頂點將用於構建標記。標記的中心位於(0,0)標準化單位。整體標記被重新縮放s。
- edgecolors :可選,默認None。如果None,則採用『face』,即邊緣顏色和主顏色一致。
plt.grid() :顯示網格
效果圖
Q:我能設置x軸和y軸的刻度間隔嗎?
A:對於強大的Python來說有什麼是不可能的呢?當然可以呀!!
下一個例子
import xlrdimport matplotlib.pyplot as pltfrom matplotlib.ticker import MultipleLocatorfrom matplotlib.ticker import FormatStrFormatterimport matplotlib as mplimport matplotlib.dates as mdatedata = xlrd.open_workbook(0111.xls) #讀取Excel數據 並提取出所需量x和ytable = data.sheets()[0]y = table.col_values(3)x = table.col_values(1)ax = plt.subplot(111)ax.scatter(x,y,s=40,c=r,marker=.)plt.show() #顯示圖片
由於時間關係,我就直接把我其中一個項目里的一段代碼搬上來啦~~
如果直接運行上面這堆代碼結果將會是
當我稍微改一改代碼之後:
import xlrdimport matplotlib.pyplot as pltfrom matplotlib.ticker import MultipleLocatorfrom matplotlib.ticker import FormatStrFormatterimport matplotlib as mplimport matplotlib.dates as mdatedata = xlrd.open_workbook(0111.xls) #讀取Excel數據 並提取出所需量x和ytable = data.sheets()[0]y = table.col_values(3)x = table.col_values(1)ax = plt.subplot(111)xmajorLocator = MultipleLocator(120) #設置x軸主刻度大小xminorLocator = MultipleLocator(60) #設置x軸副刻度大小ax.xaxis.set_major_locator(xmajorLocator) #設置主刻度ax.xaxis.set_minor_locator(xminorLocator) #設置副刻度ax.scatter(x,y,s=40,c=r,marker=.)plt.show() #顯示圖片
那麼圖像就可以顯示出主刻度和副刻度啦!
一切的關鍵就在於這四行代碼
xmajorLocator = MultipleLocator(120) xminorLocator = MultipleLocator(60) ax.xaxis.set_major_locator(xmajorLocator) ax.xaxis.set_minor_locator(xminorLocator)
第一行和第二行代碼分別用於定義主刻度和副刻度的顯示間隔,如果沒有這兩行,將會由系統自動選擇合適的刻度間隔。
第三和第四行代碼則是開啟自定義的刻度顯示,如果只有第一和第二行代碼卻沒有第三和第四行代碼的話圖像依然不會顯示你自定義的刻度間隔的哦
總結
matplotlib是進行數值分析的一個強大的第三方庫,學好它一定對你未來有幫助,希望各位同學們加油咯。
如果想更深入了解matplotlib庫的使用,最優先推薦的就是matplotlib官方幫助文檔 ,你想要的,這裡都有。
推薦閱讀:
※上海雲棲大會,阿里雲都重磅發布了啥?重要消息一文薈萃!
※一文讀懂物聯網、雲計算與大數據的關係
※4· 數據時代|用數據說話!年輕人對視頻網站到底意味著什麼?
※第一關:大數據學習計劃和R語言初認識
※大數據時代下,數據感知在數據質量管理系統中的應用