資料可視化是資料分析的最後一步,隻有完成這一步才能把資料的資訊清晰明了的傳遞出來,這一節我們将使用python将最簡單的2D圖表制作出來。
第三節 資料可視化之Matplotlib 初識(上)
目錄
一. Matplotlib簡介
二. 繪制折線圖

➡ 一.Matplotlib簡介
Matplotlib 是 Python 中常用的 2D 繪圖庫,它能輕松地将資料進行可視化,作出精美的圖表。Matplotlib 這個子產品很龐大,最常用的是其中一個子子產品——pyplot,通常這樣導入它:
import matplotlib.pyplot as plt
導入之後就可以利用Matplotlib的pyplot子子產品來進行畫圖了,我們先來畫一個三角函數的函數圖像看一下效果:
(小貼士:可利用Anaconda進行程式設計做圖,沒有安裝的小朋友可以關注公衆号回複python擷取安裝包哦)
我們來看一下每一行代碼的作用:
- 因為需要用到數組,是以我們需要import numpy, 不了解numpy的同學可以看一下前兩節的内容~
- x = np.arange(0, 2 * np.pi, 0.1),這也是前兩節所學的内容,目的是導入數組,np.pi 就是 π 的值。這行代碼生成的是0到 2π 的數組,步長是 0.1。如果不明白我們把x的值輸出一下看一下:
anaconda matplotlib 輸出動畫_Python資料分析第三節 資料可視化之Matplotlib 初識(上)... - 步長為0.1是為了讓每個點的間隔小一點,點的數量多一些,這樣畫出的圖像更加接近真實情況,也更加的平滑。
- y = np.sin(x)。np.sin() 方法是 numpy 中計算正弦函數的方法,我們将 x 的值傳進去就得到對應的正弦值。
- 有了 x 和 y 的值之後,将其分别傳入 plt.plot() 方法,pyplot 會将其轉換成對應的坐标。
- 将這些坐标連成線就得到了函數的圖像,最後調用 plt.show() 方法就能将圖像顯示出來了。
上面的例子是畫了一個函數圖像,如果我們要同時畫兩個函數圖像呢?
很簡單,我們隻需要輸入兩個因變量y的表達式,重複代碼即可:
下面的示範是同時畫出sin(x)函數和cos(x)函數
代碼裡面的plt.plot(x, y1, x, y2)也可以一個一個寫出來:
plt.plot(x, y1)plt.plot(x, y2)
其實對于每一對 x 和 y,還有一個可選的格式化參數,用來指定線條的顔色、點标記和線條的類型。
x = np.arange(0, 2 * np.pi, 0.1)y1 = np.sin(x)y2 = np.cos(x)plt.plot(x, y1, 'ro--') # 正弦函數圖像plt.plot(x, y2, 'b*-.') # 餘弦函數圖像# 等價于 plt.plot(x, y1, 'ro--', x, y2, 'b*-.')plt.show()
生成的圖下如下:
圖像的樣子是由格式化參數決定的,例如正弦函數的格式化參數'ro--',r代表紅色(red),o代表圓點标記,--代表着虛線。是以'ro--'代表線條為紅色虛線、坐标點标記為圓點。
下圖列出了常用格式化參數的含義:
➡ 二. 繪制折線圖
其實學完了前面的内容就已經掌握了做圖的基本畫法了,隻不過要再學習幾個python語句罷了
我們還是先來看例子
上面是某商品一周的銷量走勢。x 軸傳入時間,y 軸傳入對應的銷量,應該不難了解。因為圖中有中文,是以需要通過 plt.rcParams['font.family'] = ['arial unicode ms'] 來設定中文字型,否則中文将會亂碼。
arial unicode ms是Anaconda 環境裡面安裝的中文字型,其他環境不一定适用哦~可以通過如下代碼來檢視所使用環境安裝的字型
import matplotlib.font_manager as fmfor font in fm.fontManager.ttflist: print(font.name)
畫出多條曲線跟前面講的同理,隻需:
plt.plot(x,y1)plt.plot(x,y2)...
另外介紹一下加圖例的方法,在調用 plt.plot() 方法時傳入 label 參數,接着調用 plt.legend() 方法顯示圖例即可。
這樣,我們就能一眼看出每條線所對應的商品。我們還可以看到,圖例被放在了圖表的左上方,圖例位置其實是可以設定的,不設定的情況下 matplotlib 會幫你自動找一個合适的位置放置。
如果想自行選擇圖例位置的話可以通過
plt.legend()
方法的
loc
參數實作,
loc
參數共有如下 11 種方式可供選擇:
如果我們想将圖例放到右下角就可以這麼寫:
到這裡就結束了嗎?不,還沒有!我們還可以通過 plt.xlabel() 和 plt.ylabel() 方法來設定 x 軸和 y 軸的标簽,還能通過 plt.title() 給圖表設定标題。我們來看一下具體用法:
下一節将繼續介紹柱狀圖和餅圖的繪制,敬請期待~
?
長按關注公衆号
歡迎留言交流