Jupyter Notebook 绘图魔法函数 %matplotlib inline 详解

Ivy
Ivy
发布时间:2026-10-13 | 2人浏览过
原创

本文详解 Jupyter Notebook 中用于内嵌绘图的魔法函数 %matplotlib inline。该函数允许图表直接显示在代码单元格下方,无需调用 plt.show()。文章介绍了行级与单元级魔法函数的区别,并指出其在 PyCharm 等非 IPython 环境中不可用,适用于机器学习二维数据可视化场景。

Jupyter Notebook 绘图概述

本文主要介绍如何在 Python 环境中利用 Jupyter Notebook 的魔法函数进行绘图操作,内容包含详细示例代码,旨在为相关学习或工作提供参考价值。

首先展示一段相关的代码实现:


#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 是一个典型的魔法函数。根据官方定义,IPython 提供了一组预先定义的魔法函数,用户可以通过命令行语法形式访问它们。因此,“%matplotlib inline”是 IPython 中独有的、模仿命令行访问方式的形式。魔法函数分为两类:行级(line)和单元级(cell)。行级魔法函数以单个“%”为前缀,类似于系统命令行中用户名后的“$”符号,其参数直接跟在“%”之后,无需括号或引号包裹。单元级魔法函数以双“%%”为前缀,其参数不仅包含当前行之后的内容,还涵盖当前行下方的所有代码。需要注意的是,作为 IPython 的内置功能,该函数在 PyCharm 等 IDE 中并不受支持。

%matplotlib inline 功能总结

总结而言,%matplotlib inline 可在 IPython 编译器中直接使用,主要功能是实现内嵌绘图,并省略调用 plt.show() 的步骤。

由此可见,这是仅在 Jupyter Notebook 中可用的方法,虽然便捷,只需传入两个维度的数据即可完成绘图,其封装程度相当彻底。

适用场景与局限性

对于非 Python 专业开发者,若仅使用机器学习,绘制简单图表已足够。该模块仅支持二维图形绘制,若需三维图形,则需采用其他方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表