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

Obsidian导出PDF时matplotlib.pyplot图表不显示仅呈现代码的问题

Obsidian导出PDF时Matplotlib图表不显示的解决办法

方案1:修改代码并手动插入图片

把代码里的plt.show()替换成保存图片的代码,执行后在笔记里插入生成的图片,导出PDF时就能正常显示图表:

import numpy as np
import matplotlib.pyplot as plt

phi = np.linspace(np.pi/6, np.pi/3, 100)
ratio_1=(4-2*np.sin(phi))/(1-np.sin(phi))
ratio_2=(1+np.sin(phi))/(1-np.sin(phi))
fig, ax = plt.subplots()
ax.plot(np.rad2deg(phi),ratio_1, label=r"$\frac{\sigma_c}{\sigma_{t}^{'}}$" )
ax.plot(np.rad2deg(phi),ratio_2, label=r'$\frac{\sigma_c}{\sigma_{t}}$')
ax.grid()
ax.legend()
ax.set_xlabel('Angle of friction')
ax.set_ylabel('Ratio')
# 替换plt.show()为保存图片的代码,路径可自定义
plt.savefig("friction_ratio_plot.png", dpi=300, bbox_inches='tight')
plt.close()  # 关闭绘图释放资源

执行代码后,在代码块下方插入图片:

![摩擦系数比图表](friction_ratio_plot.png)

方案2:配置代码执行插件自动嵌入图片

如果用的是Execute Code插件,在插件设置里开启"Insert Output"选项,同时在代码块的元数据里指定输出为图片格式。比如代码块开头加上:

---
execute:
  output: image
---

执行代码后,插件会自动把生成的图表作为图片嵌入笔记,导出PDF时就能识别。

方案3:用Pandoc转PDF

Obsidian自带导出对动态生成的图表支持有限,可以用Pandoc手动转换:

  1. 把笔记导出为纯Markdown文件(确保图片已经嵌入或路径正确)
  2. 打开终端,执行以下命令:
pandoc -s 你的笔记文件名.md -o 输出文件名.pdf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:42:44