本文介紹另外幾種常見數(shù)據(jù)圖:Scatter 散點圖、Bar 柱狀圖和 Contours 等高線圖
1. 準(zhǔn)備數(shù)據(jù)
import matplotlib.pyplot as plt
import numpy as np
n = 1024 # data size
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)
T = np.arctan2(Y, X) # for color later on
2. 設(shè)定坐標(biāo)軸
plt.xlim(-1.5, 1.5)
plt.xticks(()) # ignore xticks
plt.ylim(-1.5, 1.5)
plt.yticks(()) # ignore yticks
3. 繪制散點圖
plt.scatter(X, Y, s=75, c=T, alpha=.5)
注:
1.散點圖函數(shù) plt.scatter(X, Y, s, c, alpha)
2.散點圖函數(shù)參數(shù)(X,Y):表示散點圖上下限點位置
3.散點圖函數(shù)參數(shù)"s":表示
4.散點圖函數(shù)參數(shù)"c":表示點的顏色(b--blue弊攘,c--cyan镶柱,g--green,k--black跛璧,m--magenta严里,r--red,w--white追城,y--yellow)
5.散點圖函數(shù)參數(shù)"alpha":表示點的透明度
4. Bar 柱狀圖
4.1 準(zhǔn)備數(shù)據(jù)
import matplotlib.pyplot as plt
import numpy as np
n = 12
X = np.arange(n)
Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)
Y2 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)
4.2 繪制柱狀圖
plt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
plt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white')
注:plt.bar():(X,Y)表示柱狀圖高度刹碾,facecolor表示柱狀圖顏色,edgecolor表示邊框顏色
4.3 注釋柱狀圖
for x, y in zip(X, Y1):
# ha: horizontal alignment
# va: vertical alignment
plt.text(x + 0.4, y + 0.05, '%.2f' % y, ha='center', va='bottom')
for x, y in zip(X, Y2):
# ha: horizontal alignment
# va: vertical alignment
plt.text(x + 0.4, -y - 0.05, '%.2f' % y, ha='center', va='top')
5. Contours 等高線圖
5.1 準(zhǔn)備數(shù)據(jù)
import matplotlib.pyplot as plt
import numpy as np
def f(x,y):
# the height function
return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
X,Y = np.meshgrid(x, y)
5.2 繪制等高線圖
# use plt.contourf to filling contours
# X, Y and value for (X,Y) point
plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap=plt.cm.hot)
注:plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap=plt.cm.hot)
5.3 注釋等高線圖
# use plt.contour to add contour lines
C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)
# adding label
plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())
plt.show()