1.簡單的折線圖(注:如果程式跑不出來,你最后加上plt.show() )
對于圖表來說,最簡單的莫過于作出一個單一函式的影像,我們首先來介紹創建這種型別圖表,
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import numpy as np
對于所有的 Matplotlib 圖表來說,我們都需要從創建圖形和維度開始,圖形和維度可以使用下面代碼進行最簡形式的創建:
fig = plt.figure()
ax = plt.axes()

在 Matplotlib 中,圖形(類plt.Figure的一個實體)可以被認為是一個包括所有維度、影像、文本和標簽物件的容器,維度(類plt.Axes的一個實體)就是你上面看到的影像,一個有邊界的格子包括刻度和標簽,最侄訓有我們畫在上面的圖表元素,我們使用變數名fig來指代圖形物件,以及變數名ax來指代維度變數,
一旦我們創建了維度,我們可以使用ax.plot方法將資料繪制在圖表上,下面是一個簡單的正弦函式圖形:
fig = plt.figure()
ax = plt.axes()
x = np.linspace(0, 10, 1000)
ax.plot(x, np.sin(x));

同樣的,我們可以使用 pylab 介面幫我們在后臺自動創建這兩個物件:
plt.plot(x, np.sin(x));

如果我們需要在同一幅圖形中繪制多根線條,只需要多次呼叫plot函式即可:
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x));

這就是在 Matplotlib 中繪制簡單函式影像的所有介面了,下面我們深入了解一下控制坐標軸和線條外觀的細節,
調整折線圖:線條顏色和風格
你可能第一個想到需要進行調整的部分就是線條的顏色和風格,plt.plot()函式接受額外的引數可以用來指定它們,通過指定color關鍵字引數可以調整顏色,這個字串型別引數基本上能用來代表任何你能想到的顏色,可以通過多種方式指定顏色引數:
plt.plot(x, np.sin(x - 0), color='blue') # 通過顏色名稱指定
plt.plot(x, np.sin(x - 1), color='g') # 通過顏色簡寫名稱指定(rgbcmyk)
plt.plot(x, np.sin(x - 2), color='0.75') # 介于0-1之間的灰階值
plt.plot(x, np.sin(x - 3), color='#FFDD44') # 16進制的RRGGBB值
plt.plot(x, np.sin(x - 4), color=(1.0,0.2,0.3)) # RGB元組的顏色值,每個值介于0-1
plt.plot(x, np.sin(x - 5), color='chartreuse'); # 能支持所有HTML顏色名稱值

如果沒有指定顏色,Matplotlib 會在一組默認顏色值中回圈使用來繪制每一條線條,
類似的,通過linestyle關鍵字引數可以指定線條的風格:
plt.plot(x, x + 0, linestyle='solid')
plt.plot(x, x + 1, linestyle='dashed')
plt.plot(x, x + 2, linestyle='dashdot')
plt.plot(x, x + 3, linestyle='dotted');
# 還可以用形象的符號代表線條風格
plt.plot(x, x + 4, linestyle='-') # 實線
plt.plot(x, x + 5, linestyle='--') # 虛線
plt.plot(x, x + 6, linestyle='-.') # 長短點虛線
plt.plot(x, x + 7, linestyle=':'); # 點線

如果你喜歡更簡潔的代碼,這些linestyle和color引數能夠合并成一個非關鍵字引數,傳遞給plt.plot()函式:
plt.plot(x, x + 0, '-g') # 綠色實線
plt.plot(x, x + 1, '--c') # 天青色虛線
plt.plot(x, x + 2, '-.k') # 黑色長短點虛線
plt.plot(x, x + 3, ':r'); # 紅色點線

上面的單字母顏色碼是 RGB 顏色系統以及 CMYK 顏色系統的縮寫,被廣泛應用在數字化影像的顏色系統中,
還有很多其他的關鍵字引數可以對折線圖的外觀進行精細調整;可以通過在 IPython 中使用幫助工具查看plt.plot()函式的檔案來獲得更多細節內容,
調整折線圖:坐標軸范圍
Matplotlib 會自動選擇非常合適的坐標軸范圍來繪制你的影像,但是有些情況下你也需要自己進行相關調整,使用plt.xlim()和plt.ylim()函式可以調整坐標軸的范圍:
plt.plot(x, np.sin(x))
plt.xlim(-1, 11)
plt.ylim(-1.5, 1.5);

如果某些情況下你希望將坐標軸反向,你可以通過上面的函式實作,將引數順序顛倒即可:
plt.plot(x, np.sin(x))
plt.xlim(10, 0)
plt.ylim(1.2, -1.2);

相關的函式還有plt.axis()(注意:這不是plt.axes()函式,函式名稱是 i 而不是 e),這個函式可以在一個函式呼叫中就完成 x 軸和 y 軸范圍的設定,傳遞一個[xmin, xmax, ymin, ymax]的串列引數即可:
plt.plot(x, np.sin(x))
plt.axis([-1, 11, -1.5, 1.5]);

當然plt.axis()函式不僅能設定范圍,還能像下面代碼一樣將坐標軸壓縮到剛好足夠繪制折線影像的大小:
plt.plot(x, np.sin(x))
plt.axis('tight');

還可以通過設定’equal’引數設定x軸與y軸使用相同的長度單位:
plt.plot(x, np.sin(x))
plt.axis('equal');

更多關于設定 axis 屬性的內容請查閱plt.axis函式的檔案字串,
折線圖示簽
本節最后介紹一下在折線圖上繪制標簽:標題、坐標軸標簽和簡單的圖例,
標題和坐標軸標簽是最簡單的這類標簽,Matplotlib 提供了函式用來方便的設定它們:
plt.plot(x, np.sin(x))
plt.title("A Sine Curve")
plt.xlabel("x")
plt.ylabel("sin(x)");

這些標簽的位置、大小和風格可以通過上面函式的可選引數進行設定,參閱 Matplotlib 在線檔案和這些函式的檔案字串可以獲得更多的資訊,
當一幅圖中繪制了多條折線時,如果能夠繪制一個線條對應的圖例能讓圖表更加清晰,Matplotlib 也內建了函式來快速創建圖例,估計你也猜到了,通過plt.legend()函式可以實作這個需求,雖然有很多種正確的方法來指定圖例,作者認為最簡單的方法是通過在繪制每條線條時指定對應的label關鍵字引數來使用這個函式:
plt.plot(x, np.sin(x), '-g', label='sin(x)')
plt.plot(x, np.cos(x), ':b', label='cos(x)')
plt.axis('equal')
plt.legend();

上圖可見,plt.legend()函式繪制的圖例線條與圖中的折線無論風格和顏色都保持一致,查閱plt.legend檔案字串可以獲得更多相關資訊,
機械學習演算法那些事
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/188247.html
標籤:其他
上一篇:Numpy中 np.random.rand() 和 np.random.randn() 的用法和區別
下一篇:某無名雙非推免心路歷程
