You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook中绘制可无限缩放的矢量化图形?

解决方案

1. Matplotlib 原生支持矢量化输出

Matplotlib完全契合你的需求——操作逻辑简单、支持多图/子图布局,而且能直接导出矢量格式文件(如SVG、PDF),完全满足无限缩放的要求,不需要额外复杂工具。

核心操作流程:

  • 绘图步骤和你熟悉的Matplotlib完全一致:加载DataFrame/NumPy数组数据,调用plot()/scatter()等常规绘图函数,用subplots()创建子图布局。
  • 导出矢量图时,只需用savefig()指定矢量格式即可:
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    
    # 生成示例数据
    x = np.linspace(0, 10, 100)
    y_sin = np.sin(x)
    y_cos = np.cos(x)
    df = pd.DataFrame({'x': x, 'sin': y_sin, 'cos': y_cos})
    
    # 创建1行2列的子图
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
    
    # 子图1:用NumPy数组绘图
    ax1.plot(x, y_sin, color='#1f77b4', label='sin(x)')
    ax1.legend()
    ax1.set_title('NumPy 数据源')
    
    # 子图2:用DataFrame绘图
    ax2.plot(df['x'], df['cos'], color='#ff7f0e', label='cos(x)')
    ax2.legend()
    ax2.set_title('DataFrame 数据源')
    
    # 导出SVG格式矢量图(可无限缩放)
    plt.savefig('vector_plot.svg', format='svg', dpi=300)
    plt.show()
    
  • 支持的矢量格式包括svg、pdf、eps,这些格式都不会出现栅格化的锯齿问题,可无限缩放。

2. Seaborn(Matplotlib扩展库)

如果想要更美观的默认可视化样式,Seaborn是Matplotlib的官方扩展,操作逻辑和Matplotlib完全一致,同样支持导出矢量图,代码衔接毫无门槛:

import seaborn as sns

# 用Seaborn绘制DataFrame数据
sns.lineplot(data=df, x='x', y='sin', ax=ax1, color='#1f77b4')
sns.lineplot(data=df, x='x', y='cos', ax=ax2, color='#ff7f0e')

# 同样用savefig导出矢量图
plt.savefig('seaborn_vector_plot.svg', format='svg')

关于Plotly的补充

你觉得Plotly复杂是合理的——它主打的是交互式可视化,默认生成HTML格式的交互图,虽然也能导出矢量图,但需要额外配置,学习成本远高于Matplotlib,对于仅需要静态矢量图的场景,Matplotlib/Seaborn显然是更高效的选择。

内容的提问来源于stack exchange,提问作者Lucas P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:18:24