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

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')来避免转义错误。
  • 编译流程:必须按照以下步骤编译才能正确生成并插入图片:
    1. 第一次编译LaTeX(生成pythontex需要的脚本文件)
    2. 运行pythontex命令(执行代码生成图片)
    3. 第二次编译LaTeX(插入生成的图片)
  • 资源释放:添加plt.close()关闭绘图对象,避免后续代码出现内存泄漏或绘图冲突。

内容的提问来源于stack exchange,提问作者Marcin Szłapa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:30:18