1. 程式人生 > >如何用Python強大的matplotlib庫繪圖

如何用Python強大的matplotlib庫繪圖

matplotlib庫支援超過100種資料視覺化的顯示效果,其功能十分強大。具體可訪問下述網址:

https://matplotlib.org/gallery.html 我們一般通過pyplot簡單呼叫使用,引用方法很簡單:

 

 

一、先看一個簡單的例子:

               如何用Python強大的matplotlib庫作圖?   

   

        plt.plot 直接加一個列表,則列表值為y軸,x軸自動設定為列表對應元素的索引值(當為兩個列表時,前一個列表為橫座標); plt.ylabel可設定座標軸名稱; plt.axis為設定橫縱座標範圍; plt.savefig為儲存圖片到當前目錄下,這裡的dpi指圖的質量,即每英寸畫素點的數量為600,預設為png格式;plt.show為顯示該圖形。   二、繪圖區域分割實現多圖顯示:
如何用Python強大的matplotlib庫作圖?    如何用Python強大的matplotlib庫作圖?
plt.subplot(nrows, ncols, plot_number) 用來劃分繪圖區域並選定某一特定區域,其中nrows和ncols分別為分割區域的行數和列數,plot_number為當前繪圖區域(注:該值是按一行一行方式的數來的)。如此便實現了多圖顯示。   如果繪製圖形區域不是規則的劃分,需要用到輔助subplot設計的函式subplot2grid() 。其基本理念為:設定網路,選中網路,確定選中行列區域數量,編號從0開始。 plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1) 其中第一個引數表示區域劃分,第二個引數為選定位置,第三第四個引數分別值列和行的延伸。見下例
如何用Python強大的matplotlib庫作圖?
     如何用Python強大的matplotlib庫作圖?     三、plot函式常用功能:   plt.plot(x, y, format_string, **kwargs) 其中x為x軸資料,為列表或numpy陣列;y為y軸資料;format_string為控制曲線格式的字串,可選;**kwargs表示可以多組放置前三個引數,繪製在一張圖中(例如繪製多條曲線,注:此時x不可省略)。   format_string 由顏色字元、風格字元和標記字元組成。 (1)常用顏色字元有:(也可用color='green'設定) 'b' 藍色    'm'洋紅色    'g'綠色    'y'黃色    'r'紅色    'k'黑色    'w'白色    '#0080000'RGB某顏色    '0.8'灰度值字串 (2)常用風格字元有:(也可用linestyle='dashed'設定) '-'實線    '--'破折線    '-.'點劃線    ':'虛線    (3)常用的標記字元有:(也可用marker='o'設定) '.'點    ','畫素(極小點)    'o'實心圈    'v'倒三角    '^'上三角    '>'右三角    '<'左三角    '1'下花三角 '2'上花三角    '3'左花三角    '4'右花三角    's'實心方形    'p'實心五角    '*'星形    'h'豎六邊形    'H'橫六邊形    '+'十字    'x'x標記    'D'菱形    'd'瘦菱形    '|'垂直線  
如何用Python強大的matplotlib庫作圖?
     如何用Python強大的matplotlib庫作圖? 用法如上例所示。     四、pyplot的中文顯示:   一般中文是不能夠顯示在pyplot中的,如果要在圖中新增中文可以選擇用rcParams將字型進行修改。 如何用Python強大的matplotlib庫作圖? rcParams的屬性(會改變圖中所有的字型): 'font.family'用於顯示字型名稱 'font.style'字型風格,正常'normal'或斜體'italic' 'font.size'字型大小,整數字號   另一種方法更加實用簡單,增加一個fontproperties屬性,由於這種方法可區域性修改字型,因此更推薦使用此方法。   除了plt.xlabel() , plt.ylabel()還有如下幾種文字顯示函式 plt.title() 對圖形整體增加文字標籤; plt.text() 在任意位置增加文字;plt.annotate() 在圖形中增加帶箭頭註釋   為了更好理解本節內容,具體見下例: 如何用Python強大的matplotlib庫作圖? 如何用Python強大的matplotlib庫作圖? 熟悉LaTeX編寫的人不難發現,'$'符號括起來的部分是LaTeX的語法格式,可輸入很多常用的數學符號。
plt.text() 前兩個引數表示的是輸入文字的起始位置,第三個引數為輸入內容,最後為格式; plt.annotate() 第一個引數為輸入內容,第二個引數為箭頭指向位置,第三個引數為文字位置,最後為一個字典格式的箭頭格式調整引數。  
五、常用基礎圖表函式: plt.plot()繪製座標圖; plt.boxplot()箱形圖; plt.bar()條形圖; plt.barh()橫向條形圖; plt.polar()極座標圖;  plt.pie()餅圖; plt.psd()功率譜密度圖; plt.specgram()譜圖; plt.cohere() X-Y的相關性函式圖; plt.scatter()散點圖; plt.step()步階圖; plt.hist()直方圖; plt.contour()等值圖; plt.vlines()垂直圖;  plt.stem()柴火圖; plt.plot_date()資料日期;  下面介紹幾種常用的圖示繪製方法: (1)餅圖 如何用Python強大的matplotlib庫作圖?    如何用Python強大的matplotlib庫作圖? 其中sizes約定各塊尺寸,explode指定突出比例,labels給出各塊標籤,autopct表示顯示百分數的方式,shadow指陰影效果,startangle指其實角度。 (2)直方圖 如何用Python強大的matplotlib庫作圖?     如何用Python強大的matplotlib庫作圖? 其中最關鍵的為前兩個引數,第一個是統計資料a;第二個引數bin,指的是直立直方的個數(即在最小值和最大值之間平均劃分為bin份,統計每一份的個數並繪圖);normed為1表示出現概率(歸一化了),為0表示出現次數; (3)散點圖 如何用Python強大的matplotlib庫作圖?     如何用Python強大的matplotlib庫作圖? 上述應用的時面向物件的繪圖方式,這種方式可以實現更加定製化的繪圖,但也更加複雜。

  六、三維圖的繪製: (1)繪製三維座標點和線 如何用Python強大的matplotlib庫作圖? 如何用Python強大的matplotlib庫作圖? (2)繪製平面和曲面 如何用Python強大的matplotlib庫作圖? 如何用Python強大的matplotlib庫作圖?