2025——》import matplotlib.pyplot as plt/如何在Jupyter Notebook中使用Matplotlib库?

import matplotlib.pyplot as plt 是 Python 中用于导入 Matplotlib 库的绘图模块 pyplot 并设置别名为 plt 的标准语句。Matplotlib 是一个强大的可视化库,广泛用于数据可视化、图表绘制和科学绘图。以下是关于该语句的详细说明:

一、语句解析

  1. import matplotlib.pyplot

    • matplotlib 是基础库,pyplot 是其子模块,提供类似 MATLAB 的绘图接口,支持各种图表类型(折线图、散点图、柱状图等)。
  2. as plt

    • 将 pyplot 模块简称为 plt,这是 Python 社区的标准约定,方便代码书写(例如用 plt.plot() 代替 matplotlib.pyplot.plot())。

二、为什么要导入 pyplot

导入后,你可以使用 pyplot 提供的各种绘图函数:

  • 创建各类图表(折线图、散点图、柱状图、饼图等)
  • 设置图表样式(标题、标签、颜色、字体等)
  • 自定义坐标系(坐标轴范围、刻度、网格等)
  • 保存图表为图片文件

三、简单示例

python

import matplotlib.pyplot as plt  # 导入绘图模块

# 绘制简单的折线图
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)  # 绘制折线
plt.title('平方数折线图')  # 设置标题
plt.xlabel('x')  # 设置x轴标签
plt.ylabel('y = x²')  # 设置y轴标签
plt.show()  # 显示图表
 

import matplotlib.pyplot as plt  # 导入绘图模块

# 绘制简单的折线图
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)  # 绘制折线
plt.title('平方数折线图')  # 设置标题
plt.xlabel('x')  # 设置x轴标签
plt.ylabel('y = x²')  # 设置y轴标签
plt.show()  # 显示图表

四、安装 Matplotlib

如果导入时提示 ModuleNotFoundError,说明未安装 Matplotlib,可通过以下命令安装:

  • pip

    bash

  • pip install matplotlib
     

    pip install matplotlib
    
  • Anaconda

    bash

  • conda install matplotlib
     

    conda install matplotlib
    

五、在 Jupyter Notebook 中使用

在 Jupyter 中,还需要添加一个魔法命令来确保图表在单元格内显示:

python

%matplotlib inline  # 仅需在Jupyter中使用,让图表内联显示
import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [4, 5, 6]
plt.plot(x, y)
plt.show()
 

%matplotlib inline  # 仅需在Jupyter中使用,让图表内联显示
import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [4, 5, 6]
plt.plot(x, y)
plt.show()

六、常见图表类型

  1. 折线图plt.plot()
  2. 散点图plt.scatter()
  3. 柱状图plt.bar()
  4. 饼图plt.pie()
  5. 直方图plt.hist()
  6. 箱线图plt.boxplot()

七、自定义图表样式

python

import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 设置中文字体(避免中文显示乱码)
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]

# 创建更复杂的图表
plt.figure(figsize=(10, 5))  # 设置图表大小
plt.plot(x, y, 'b-', linewidth=2, label='sin(x)')  # 蓝色实线,线宽2,添加图例标签
plt.plot(x, np.cos(x), 'r--', label='cos(x)')  # 红色虚线
plt.title('正弦和余弦函数')  # 标题
plt.xlabel('x轴')  # x轴标签
plt.ylabel('y轴')  # y轴标签
plt.grid(True)  # 显示网格
plt.legend()  # 显示图例
plt.ylim(-1.5, 1.5)  # 设置y轴范围
plt.show()
 

import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 设置中文字体(避免中文显示乱码)
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]

# 创建更复杂的图表
plt.figure(figsize=(10, 5))  # 设置图表大小
plt.plot(x, y, 'b-', linewidth=2, label='sin(x)')  # 蓝色实线,线宽2,添加图例标签
plt.plot(x, np.cos(x), 'r--', label='cos(x)')  # 红色虚线
plt.title('正弦和余弦函数')  # 标题
plt.xlabel('x轴')  # x轴标签
plt.ylabel('y轴')  # y轴标签
plt.grid(True)  # 显示网格
plt.legend()  # 显示图例
plt.ylim(-1.5, 1.5)  # 设置y轴范围
plt.show()

八、保存图表

python

plt.plot(x, y)
plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')  # 保存为PNG文件
# 或保存为PDF、SVG等格式:plt.savefig('my_plot.pdf')
 

plt.plot(x, y)
plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')  # 保存为PNG文件
# 或保存为PDF、SVG等格式:plt.savefig('my_plot.pdf')

九、其他导入方式

  1. 导入特定函数

    python

  2. from matplotlib.pyplot import plot, show  # 仅导入部分函数
    plot(x, y)
    show()
     

    from matplotlib.pyplot import plot, show  # 仅导入部分函数
    plot(x, y)
    show()
    
  3. 导入所有功能(不推荐):

    python

  4. from matplotlib.pyplot import *  # 可能导致命名冲突
     

    from matplotlib.pyplot import *  # 可能导致命名冲突
    

十、资源推荐

  • 官方文档:matplotlib.pyplot — Matplotlib 3.10.3 documentation
  • 示例画廊:Examples — Matplotlib 3.10.3 documentation
  • 快速入门教程:https://matplotlib.org/stable/tutorials/introductory/pyplot.html

 

在 Jupyter Notebook 中使用 Matplotlib 库进行数据可视化非常便捷,以下是详细的步骤和注意事项:

一、基本使用流程

1. 导入 Matplotlib 和 NumPy(如果需要处理数据)

python

import matplotlib.pyplot as plt
import numpy as np  # 用于生成示例数据
 

import matplotlib.pyplot as plt
import numpy as np  # 用于生成示例数据
2. 添加魔法命令(仅 Jupyter 需要)

确保图表直接显示在 Notebook 中:

python

%matplotlib inline
 

%matplotlib inline
3. 绘制并显示图表

python

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)
plt.title('正弦函数')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.show()  # 显示图表(在Jupyter中可省略,但建议保留)
 

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y)
plt.title('正弦函数')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.show()  # 显示图表(在Jupyter中可省略,但建议保留)

二、图表显示设置

1. 内联显示 vs 交互式显示
  • 静态图片(默认)

    python

  • %matplotlib inline
     

    %matplotlib inline
    
  • 交互式图表(可缩放、拖动):

    python

  • %matplotlib notebook  # 或 %matplotlib widget (JupyterLab需要安装ipympl)
     

    %matplotlib notebook  # 或 %matplotlib widget (JupyterLab需要安装ipympl)
    
2. 设置分辨率

python

%config InlineBackend.figure_format = 'retina'  # 高清显示(Mac和支持Retina的设备)
 

%config InlineBackend.figure_format = 'retina'  # 高清显示(Mac和支持Retina的设备)

三、解决中文显示问题

如果图表中的中文显示为方块,需要设置字体:

python

plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]  # 依次尝试中文字体
 

plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]  # 依次尝试中文字体

四、常用图表类型

1. 折线图

python

plt.plot(x, y, 'b-', linewidth=2)  # 蓝色实线,线宽2
 

plt.plot(x, y, 'b-', linewidth=2)  # 蓝色实线,线宽2
2. 散点图

python

plt.scatter(x, y, color='red', marker='o')  # 红色圆点
 

plt.scatter(x, y, color='red', marker='o')  # 红色圆点
3. 柱状图

python

categories = ['A', 'B', 'C']
values = [10, 25, 15]
plt.bar(categories, values)
 

categories = ['A', 'B', 'C']
values = [10, 25, 15]
plt.bar(categories, values)
4. 饼图

python

sizes = [30, 40, 20, 10]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
 

sizes = [30, 40, 20, 10]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
5. 直方图

python

data = np.random.normal(0, 1, 1000)  # 正态分布数据
plt.hist(data, bins=30)
 

data = np.random.normal(0, 1, 1000)  # 正态分布数据
plt.hist(data, bins=30)

五、多图布局

1. 子图(Subplots)

python

fig, axes = plt.subplots(2, 2, figsize=(10, 8))  # 2x2网格

axes[0, 0].plot(x, np.sin(x))
axes[0, 1].plot(x, np.cos(x))
axes[1, 0].plot(x, np.tan(x))
axes[1, 1].plot(x, x**2)

plt.tight_layout()  # 自动调整布局
 

fig, axes = plt.subplots(2, 2, figsize=(10, 8))  # 2x2网格

axes[0, 0].plot(x, np.sin(x))
axes[0, 1].plot(x, np.cos(x))
axes[1, 0].plot(x, np.tan(x))
axes[1, 1].plot(x, x**2)

plt.tight_layout()  # 自动调整布局
2. 共享坐标轴

python

fig, axes = plt.subplots(2, 1, sharex=True)  # 共享x轴
axes[0].plot(x, np.sin(x))
axes[1].plot(x, np.cos(x))
 

fig, axes = plt.subplots(2, 1, sharex=True)  # 共享x轴
axes[0].plot(x, np.sin(x))
axes[1].plot(x, np.cos(x))

六、自定义图表样式

1. 设置标题和标签

python

plt.title('图表标题', fontsize=16)
plt.xlabel('X轴', fontsize=12)
plt.ylabel('Y轴', fontsize=12)
 

plt.title('图表标题', fontsize=16)
plt.xlabel('X轴', fontsize=12)
plt.ylabel('Y轴', fontsize=12)
2. 添加图例

python

plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.legend(loc='upper right')  # 图例位置
 

plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.legend(loc='upper right')  # 图例位置
3. 设置坐标轴范围

python

plt.xlim(0, 10)  # x轴范围
plt.ylim(-1.5, 1.5)  # y轴范围
 

plt.xlim(0, 10)  # x轴范围
plt.ylim(-1.5, 1.5)  # y轴范围
4. 添加网格

python

plt.grid(True, linestyle='--', alpha=0.7)  # 虚线网格,透明度70%
 

plt.grid(True, linestyle='--', alpha=0.7)  # 虚线网格,透明度70%

七、保存图表

python

plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')  # 保存为PNG
# 或保存为PDF、SVG等矢量格式
plt.savefig('my_plot.pdf')
 

plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')  # 保存为PNG
# 或保存为PDF、SVG等矢量格式
plt.savefig('my_plot.pdf')

八、常见问题及解决方案

  1. 图表不显示

    • 检查是否添加了 %matplotlib inline
    • 尝试重启 Kernel 并重新执行
  2. 中文显示乱码

    • 设置中文字体(见上文)
    • 如果仍无效,可尝试安装中文字体包
  3. 图表模糊

    • 使用 %config InlineBackend.figure_format = 'retina'
    • 或在保存时提高 DPI:plt.savefig('fig.png', dpi=300)

九、高级技巧

1. 使用 Seaborn 美化图表

Seaborn 是基于 Matplotlib 的高级可视化库,提供更美观的默认样式:

python

import seaborn as sns
sns.set_style('whitegrid')  # 设置样式
plt.plot(x, y)
 

import seaborn as sns
sns.set_style('whitegrid')  # 设置样式
plt.plot(x, y)
2. 交互式数据探索

结合 IPython Widgets 创建可交互图表:

python

from ipywidgets import interact

def plot_sin(freq=1):
    plt.plot(x, np.sin(freq * x))
    plt.ylim(-1.5, 1.5)

interact(plot_sin, freq=(0.5, 5, 0.1));  # 创建滑块控制频率
 

from ipywidgets import interact

def plot_sin(freq=1):
    plt.plot(x, np.sin(freq * x))
    plt.ylim(-1.5, 1.5)

interact(plot_sin, freq=(0.5, 5, 0.1));  # 创建滑块控制频率

十、学习资源

  • Matplotlib 官方教程
  • Seaborn 官方示例
  • Python 数据可视化实战

通过以上步骤,你可以在 Jupyter Notebook 中高效地使用 Matplotlib 进行数据可视化。

 

你可能感兴趣的:(NumPy,jupyter,matplotlib,numpy,jupyter)