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

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

本文详解 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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。