Jupyter 输出矢量图详解
本文将介绍如何在 Jupyter 环境中输出矢量图,主要涉及 Matplotlib 库与 SVG 格式的结合。矢量图具有无损缩放特性,适合科学计算可视化与报告生成。
操作步骤
- 确保 Jupyter 环境已安装 Matplotlib 库。使用以下命令安装:
pip install matplotlib
- 创建 Jupyter 笔记本并导入必要的模块:
import matplotlib.pyplot as plt import numpy as np
- 生成数据并绘制图形。例如绘制正弦曲线:
x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) plt.plot(x, y)
- 保存为 SVG 文件:
plt.savefig("sine_wave.svg", format="svg") plt.show()
命令示例与解释
以下命令将生成 SVG 文件并显示图形:
plt.figure(figsize=(8, 4))
plt.plot(x, y, color="blue", linewidth=2)
plt.title("SVG 正弦曲线")
plt.xlabel("角度 (弧度)")
plt.ylabel("正弦值")
plt.grid(True)
plt.savefig("sine_wave.svg", dpi=300, transparent=True)
plt.show()
关键参数说明:
- format=”svg”:指定输出格式为 SVG
- dpi=300:设置图像分辨率
- transparent=True:设置背景透明
注意事项
- SVG 文件通常比位图文件(如 PNG)更大,但支持无限缩放
- 复杂图形可能因 SVG 压缩导致轻微失真
- 在服务器环境下,确保输出路径存在,避免保存失败
实用技巧
- 批量导出多个图形:
for i in range(5): plt.plot(x, np.sin(x + i/2)) plt.savefig(f"pattern_{i}.svg") plt.clf()
- 嵌入 SVG 到 HTML 报告:
<img src="sine_wave.svg" alt="矢量图示例" style="width: 100%;">
- 优化 SVG 大小:
import svgwrite with open("optimized.svg", "w") as f: dwg = svgwrite.Drawing("optimized.svg") # 添加 SVG 元素 dwg.save()