對於matplotlib.pyplot( as plt )
先輸入主體數據部分:
import numpy as np import matplotlib.pyplot as plt X_train = np.array([[1,2,3],[2,3,4],[2,2,1],[3,2,2]]) X_test = np.array([[1,1,1],[2,1,1]]) y_train = np.array([1,1,-1,1]) y_test = np.array([1,-1])
我們先做二維圖:(取前兩維)
首先容易想到plt.plot, 但這個是默認生成折線圖的:
plt.plot(X_train[:,0],X_train[:,1]) plt.show()
但如果我們對線條指定為o的話:
plt.plot(X_train[:,0],X_train[:,1],"ro") plt.show()
令一種做散點圖的方式就是,用scatter:
plt.scatter(X_train[:,0],X_train[:,1]) plt.show()
從上可以看到,除了我指定了的顏色外,其他均一致!
---------------------------------------------------------------------------------------------------------------------
對一個(兩類的)二維數據畫圖展示:
>>> X_1, X_0 = X_train[y_train == 1], X_train[y_train == -1] >>> plt.plot(X_1[:, 0], X_1[:, 1], "ro") >>> plt.plot(X_0[:, 0], X_0[:, 1], "bo") >>> plt.show()
通過顏色將其區分開了!
當然用scatter也可以:(但要注意要帶color關鍵字不然會報錯)
>>> plt.scatter(X_0[:, 0], X_0[:, 1], color="b") >>> plt.scatter(X_1[:, 0], X_1[:, 1], color="r") >>> plt.show()
可以看到效果一樣。
-------------------------------------------------------------------------------------------------------------------------
畫三維的散點圖:
就不能直接用plot和scatter了:他們都是畫2D的。
而要首先聲明一個畫3D圖的ax
>>> from mpl_toolkits.mplot3d import Axes3D >>> ax = plt.subplot(111, projection='3d') # 而且每次畫完一個3D圖都要這個聲明 >>> ax.scatter(X_1[:, 0], X_1[:, 1],X_1[:,2], color="r") <mpl_toolkits.mplot3d.art3d.Path3DCollection object at 0x000001E8F70B2A90> >>> ax.scatter(X_0[:, 0], X_0[:, 1],X_0[:,2], color="b") <mpl_toolkits.mplot3d.art3d.Path3DCollection object at 0x000001E8F70732B0> >>> plt.show()