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() # 关闭绘图释放资源
执行代码后,在代码块下方插入图片:

方案2:配置代码执行插件自动嵌入图片
如果用的是Execute Code插件,在插件设置里开启"Insert Output"选项,同时在代码块的元数据里指定输出为图片格式。比如代码块开头加上:
--- execute: output: image ---
执行代码后,插件会自动把生成的图表作为图片嵌入笔记,导出PDF时就能识别。
方案3:用Pandoc转PDF
Obsidian自带导出对动态生成的图表支持有限,可以用Pandoc手动转换:
- 把笔记导出为纯Markdown文件(确保图片已经嵌入或路径正确)
- 打开终端,执行以下命令:
pandoc -s 你的笔记文件名.md -o 输出文件名.pdf
内容的提问来源于stack exchange,提问作者Novak_Joksimovic
相关产品推荐
相关产品推荐

