【實驗樓/matplotlib.pyplot】matplotlib畫圖初覽

matplotlib的使用方法

先導入相應的模塊

from matplotlib import pyplot as plt

再使用plt中特有的方法來進行畫圖。

  1. 柱狀圖——plt.bar(專門用來比較大小)
  2. 直方圖——plt.barh(專門用來查看分佈)
  3. 餅狀圖——plt.pie(專門用來查看比例)
  4. 折線圖——plt.plot(專門用來繪製相應函數圖像)
  5. 散點圖——plt.scatter
  6. 等高線圖——plt.contour
    (注意區分直方圖和柱狀圖的區別)

這些方法接受兩個數組類型(包括ndarray類型以及所有可以轉化爲ndarray的類型)
我們可以使用numpy.linspace來生成相應的數組進行測試

自定義圖形的樣式

就是再相應的繪圖函數中添加相應的關鍵字參數,比如:

  1. color——顏色
  2. linestyle——線型的樣式
  3. linewidth——線型的寬度
  4. alpha——不透明度
    (除此之外還有很多,而且這裏只給出了關鍵字參數的名字,並沒有給出我們應該給他們賦予什麼樣的參數,所以我建議還是移步至官方文檔)

組合圖形樣式

我們繪圖中還有一個需求就是希望把不同的圖像畫在一起。當然我們plt肯定是實現了這些,只有當我們把使用相同的x內容的時候,matplotlib纔會把這些圖形都放在一起。

組合圖形的時候,可能需要一種更加高級的操作。
那就是自己搭建圖片的環境。

  1. 首先,先創建畫板對象fig = plt.figure()
  2. 在畫布對象的基礎上創建畫布對象axes = fig.add_axes([a, b, c, d])——注意這裏a, b, c, d分別代表了畫布左下角的兩個座標,以及畫布的寬高
  3. 再使用axes的**plot方法(或者其它的方法)**畫圖。

還有一種方法也可以實現子圖的繪製。
那就是利用plt.subplots().

然後通過這個函數返回的fig和axes對象(尤其是axes對象),
我們就能定製我們的輸出了

規範畫圖方法

我們需要一套約定,來規範我們的畫圖流程,這樣我們就能避免想怎麼做,就怎麼做的缺點。

一個比較好的建議是:不要僅僅是使用plt.plot來繪製圖像,而應該使用plt.subplots方法來使用

·添加圖表題,圖例,xy軸代表的意義

  1. 添加圖標題——axes.set_title()
  2. 添加xy軸名稱——axes.set_xlabel(); axes.set_ylable();
  3. 添加圖例——axes.legend();
    (你要知道圖例在我們的axes上是一個單獨的單元,我們可以通過傳入一個list對象來進行繪製)

·添加座標軸範圍

使用**set_ylim()和set_xlim()**來設定座標軸的範圍

參數是一個兩個元素的列表

·圖形標註方法

如果我們能夠在我們的圖形上做一些標註,那我們的圖形肯定會更加清晰。

你要知道的是我們在我們的axes上標註,只有plt.text方法,這個方法接受三個參數:

  1. 文本的x座標
  2. 文本的y座標
  3. 文本的內容,可以使用c的字符串格式化語法來做

一般而言我們會在柱狀圖上標註柱子所代表的大小,我們matplotlib自然是提供了一個很簡單的方法來幫我們實現這個需求:

bars = axes.bar(x_bar, y_bar, color='blue', label=x_bar, width=2)  # 繪製柱形圖
for i, rect in enumerate(bars):
    x_text = rect.get_x()  # 獲取柱形圖橫座標
    y_text = rect.get_height() + 0.01  # 獲取柱子的高度並增加 0.01
    plt.text(x_text, y_text, '%.1f' % y_bar[i])  # 標註文字

PS: 文中說我們可以使用pylab來使用類似於matlab的接口,但是這個在我們matplotlib的official document中是discourage的,因爲可能會造成namespace上的一些問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章