TeXStudio中plt.savefig()无法正常工作的问题求助
解决pythontex中matplotlib plt.savefig无法保存图片到TeX目录的问题
问题分析
你遇到的核心问题是绝对路径的权限/格式问题,以及没利用pythontex默认的工作目录特性。pythontex运行时的工作目录默认就是你的.tex文件所在目录,直接用相对路径即可完成保存,无需指定绝对路径。
修改后的测试代码
% !TeX TXS-program:compile = txs:///pythontex \documentclass[a4paper, 12pt]{article} \usepackage{pythontex} \usepackage{mathtools, amsthm, amssymb, icomma, upgreek, xfrac} \usepackage[utf8]{inputenc} \usepackage{lmodern, microtype} \usepackage{pgfplots} \usepackage{graphicx} \begin{document} \begin{pycode} import numpy as np import matplotlib.pyplot as plt x = np.linspace(-10, 10, 20) f = 2*x plt.plot(x, f) # 直接保存到TeX文件所在目录,无需绝对路径 plt.savefig('1.png') # 关闭绘图对象,避免内存泄漏 plt.close() \end{pycode} % 在文档中插入生成的图片 \includegraphics[width=0.8\textwidth]{1.png} \end{document}
关键注意事项
- 路径选择:直接使用文件名(如
'1.png')即可将图片保存到.tex文件的同级目录,避免了Windows绝对路径的转义麻烦和权限限制。如果一定要用绝对路径,建议用原始字符串(r'C:\test\1.png')或正斜杠('C:/test/1.png')来避免转义错误。 - 编译流程:必须按照以下步骤编译才能正确生成并插入图片:
- 第一次编译LaTeX(生成pythontex需要的脚本文件)
- 运行pythontex命令(执行代码生成图片)
- 第二次编译LaTeX(插入生成的图片)
- 资源释放:添加
plt.close()关闭绘图对象,避免后续代码出现内存泄漏或绘图冲突。
内容的提问来源于stack exchange,提问作者Marcin Szłapa
相关产品推荐
相关产品推荐

