人生苦短,我用 Pythonpython
前文傳送門:數據結構
小白學 Python 數據分析(2):Pandas (一)概述spa
小白學 Python 數據分析(3):Pandas (二)數據結構 Series3d
小白學 Python 數據分析(4):Pandas (三)數據結構 DataFramecode
小白學 Python 數據分析(5):Pandas (四)基礎操做(1)查看數據cdn
小白學 Python 數據分析(6):Pandas (五)基礎操做(2)數據選擇blog
小白學 Python 數據分析(7):Pandas (六)數據導入get
小白學 Python 數據分析(8):Pandas (七)數據預處理數據分析
小白學 Python 數據分析(9):Pandas (八)數據預處理(2)
小白學 Python 數據分析(10):Pandas (九)數據運算
小白學 Python 數據分析(11):Pandas (十)數據分組
小白學 Python 數據分析(12):Pandas (十一)數據透視表(pivot_table)
小白學 Python 數據分析(13):Pandas (十二)數據表拼接
小白學 Python 數據分析(14):Pandas (十三)數據導出
各位同窗好,本篇文章,咱們來介紹下使用 Matplotlib 時如何創建座標系。
回想一下之前咱們在接受九年義務教育毒打上數學課的時候,應該都畫過折線圖直方圖之類的統計圖表,其中第一步就是創建直角座標系。
翻出老課本,幫助各位同窗回憶一下當年的數學課,直角座標系就是下面這個:
直角座標系不只能存在於平面中,還有立體的:
固然,本文的只介紹平面直角座標系如何構建,至於立體的,咱們後面再聊。
在構建平面直角座標系以前,咱們須要先建立一個畫布。
What?畫布是啥?
emmmmmmmmmmm,這就相似於咱們在電腦上畫畫同樣,須要打開畫圖軟件,建立一個空白的白板,這個白板就是咱們後續畫圖的地方。
使用 Matplotlib 建立畫布的代碼以下,首先須要導入 Matplotlib 的庫:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))
複製代碼
上面這段代碼咱們就完成了一個寬和高都爲 6 的畫布的建立。
建立直角座標系有多不少種方法,這裏咱們一種一種來介紹:
首先,咱們使用 add_subplot
函數來建立直角座標系,咱們就在剛纔建立的那個畫布上建立 1 X 1 個直角座標系:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))
fig.add_subplot(1,1,1)
plt.show()
複製代碼
咱們獲得的結果以下:
咱們再建立 2 X 2 個直角座標系:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
plt.show()
複製代碼
結果以下圖:
這裏有一點須要說明一下,這裏參數能夠省略其中的 ,
逗號,以下:
ax1 = fig.add_subplot(221)
複製代碼
參數的含義爲建立 2 X 2 網格第一子圖。
在使用 subplot2grid
函數建立直角座標系的時候,不須要事先建立畫布,能夠直接使用建立,好比咱們下面建立一個很簡單的折線圖和柱狀圖:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4)
y = np.arange(4)
# 繪製折線圖
plt.subplot2grid((2,2),(0,0))
plt.plot(x, y)
# 繪製柱狀圖
plt.subplot2grid((2,2),(0,1))
plt.bar(x, y)
plt.show()
複製代碼
結果以下:
同上面的 subplot2grid
同樣,咱們一樣能夠經過 subplot
來繪製直角座標系,好比咱們拿上面的例子再使用 subplot
寫一遍:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4)
y = np.arange(4)
# 繪製折線圖
plt.subplot(221)
plt.plot(x, y)
# 繪製柱狀圖
plt.subplot(222)
plt.bar(x, y)
plt.show()
複製代碼
結果仍是和上面同樣的,小編再也不貼了。
上面這個示例的含義是將圖標區域分爲 2 X 2 共計 4 個區域,在第一個區域上建立折線圖,在第二個區域上建立柱狀圖。
subplots
看起來和 subplot
很像,實際上也是很是像的,它和 subplot
的不一樣之處是 subplot
一次只能返回一個座標系,而 subplots
一次能夠返回多個座標系。
咱們接着使用 subplots
完成前面的示例:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4)
y = np.arange(4)
fig, axes = plt.subplots(2, 2)
# 繪製折線圖
axes[0,0].plot(x,y)
# 繪製柱狀圖
axes[0,1].bar(x,y)
plt.show()
複製代碼
結果以下:
能夠看到,咱們雖然只使用到了兩個座標,但實際上 subplots
仍是會幫咱們將 4 個座標全都建立出來。
前面介紹的集中直角座標系的建立方法並沒有本質上的區別,只有第一種 add_subplot
在使用的時候是須要先建立一個畫布的,後面三種都是直接調用 Matplotlib 中的函數從而達到直接建立座標系的方法。