pyplot能夠利用多種數據類型繪製圖像,例如類別,numpy數組,字典等,本篇將逐一介紹如何利用不同的數據類型繪製圖像
pyplot簡介
matplotlib.pyplot是使matplotlib像MATLAB一樣工作的命令樣式函數的集合。每個pyplot功能都會對圖形進行一些更改:例如,創建圖形,在圖形中創建繪圖區域,在繪圖區域中繪製一些線條,用標籤裝飾繪圖等。
在matplotlib.pyplot各種狀態下,函數調用之間會保留在一起,以便跟蹤當前圖形和繪圖區域之類的內容,並且繪圖功能指向當前軸(請注意,此處和文檔中大多數地方的“軸”均指到軸 的圖形的部分 和不超過一個軸線的嚴格的數學術語)。
1、使用列表數據繪圖
使用pyplot我們可以非常便捷地生成可視化效果:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.grid() # 顯示網格
plt.ylabel('some numbers') # 顯示y軸標籤
plt.show()
您可能想知道爲什麼x軸的範圍是0-3,而y軸的範圍是1-4。如果爲plot()命令提供單個列表或數組 ,則matplotlib假定它是y值的序列,並自動爲您生成x值。由於python範圍從0開始,因此默認x向量的長度與y相同,但從0開始。因此x數據爲 :[0, 1, 2, 3]
我們也可以通過以下命令來繪製指定點:
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
2、使用numpy數組繪圖
不只於列表,我們還可以使用numpy數組作爲輸入
import numpy as np
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
3、用關鍵字字符串繪圖
在某些情況下,您擁有某種格式的數據,該格式允許您使用字符串訪問特定變量。例如,使用 numpy.recarray
或pandas.DataFrame
。
Matplotlib允許您爲此類對象提供data關鍵字參數。如果提供的話,您可以使用與這些變量相對應的字符串生成圖。
import matplotlib.pyplot as plt
import numpy as np
plt.grid()
data = {'a': np.arange(50),
'c': np.random.randint(0, 50, 50),
'd': np.random.randn(50)}
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100
plt.scatter('a', 'b', c='c', s='d', data=data)
plt.xlabel('entry a')
plt.ylabel('entry b')
plt.show()
4、用分類變量繪圖
可以使用分類變量創建圖。Matplotlib允許您將類別變量直接傳遞給許多繪圖函數。例如:
import matplotlib.pyplot as plt
import numpy as np
names = ['group_a', 'group_b', 'group_c']
values = [1, 10, 100]
plt.figure(figsize=(9, 3))
plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle('Categorical Plotting')
plt.show()