如何在Python中快速畫圖——使用Jupyter notebook的魔法函數(magic function)matplotlib inline


如何在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的,學機器學習用個簡單的圖就夠了。這個模塊只能畫二維圖,三維需要使用其他的方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM