如何在Python中快速畫圖——使用Jupyter notebook的魔法函數(magic function)matplotlib inline
先展示一段相關的代碼:
#we test the accuracy of knn and find the k which makes the biggest accuracy
k_range=list(range(1,26))#[1,25]
scores=[]
for k in k_range:
knn=KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train,y_train)
y_pred=knn.predict(X_test)
scores.append(metrics.accuracy_score(y_test,y_pred))
#------------ prepare the data we need to plot-------------------
#we draw a graph to show the result
import matplotlib.pyplot as plt
#a magic function,which allows polts to appear whitin the notebook
%matplotlib inline
plt.plot(k_range,scores)
plt.xlabel('Value of K for KNN')
plt.ylabel('Testing Accuracy')
什么是魔法函數呢(magic function)?
%matplotlib inline是一個魔法函數(Magic Functions)。官方給出的定義是:IPython有一組預先定義好的所謂的魔法函數(Magic Functions),你可以通過命令行的語法形式來訪問它們。可見“%matplotlib inline”就是模仿命令行來訪問magic函數的在IPython中獨有的形式。magic函數分兩種:一種是面向行的,另一種是面向單元型的。行magic函數是用前綴“%”標注的,很像我們在系統中使用命令行時的形式,例如在Mac中就是你的用戶名后面跟着“$”。“%”后面就是magic函數的參數了,但是它的參數是沒有被寫在括號或者引號中來傳值的。單元型magic函數是由兩個“%%”做前綴的,它的參數不僅是當前“%%”行后面的內容,也包括了在當前行以下的行。注意:既然是IPython的內置magic函數,那么在Pycharm中是不會支持的。
總結:%matplotlib inline 可以在Ipython編譯器里直接使用,功能是可以內嵌繪圖,並且可以省略掉plt.show()這一步。
由此可見,這是只有在jupyter notebook中才能使用的方法,不過確實是方便,只需要把兩個維度的數據傳進去就完了,封裝的可以說是相當徹底了
不是做Python的,學機器學習用個簡單的圖就夠了。這個模塊只能畫二維圖,三維需要使用其他的方法