我准备了一个带有许多 matplotlib 图的 Jupyter Notebook。现在我想将绘图保存为 PGF 格式,以便在 LaTeX 中重复使用它们。我已经按照这篇博客文章来实现这个想法。
不幸的是,如果我将 matplotlib 配置为生成 PGF 文件,它们不会显示在笔记本中。如果我禁用 matplotlib 来生成 PGF 文件,则会显示绘图,但不会生成 PGF 文件。我怎么能两者兼得?
这是重现问题的最小示例:
# Test if integration between python and latex works fine
import subprocess; subprocess.check_call(["latex", "-help"])
# Configure matplotlib to generate PGF files
import matplotlib
import matplotlib.pyplot as plt
matplotlib.use("pgf")
matplotlib.rcParams.update({
"pgf.texsystem": "pdflatex",
'font.family': 'serif',
'text.usetex': True,
'pgf.rcfonts': False,
})
# Prepare simple plot
import pandas as pd
df = pd.DataFrame({
'length': [1.5, 0.5, 1.2, 0.9, 3],
'width': [0.7, 0.2, 0.15, 0.2, 1.1]
}, index= ['pig', 'rabbit', 'duck', 'chicken', 'horse'])
hist = df.hist(bins=3)
# Save the plot to PGF file
plt.savefig('histogram.pgf')
这是 matplotlib启用配置的输出。histogram.pgf
文件已生成并保存,但未显示绘图。
这是禁用 PGF 的 matplotlib 配置时的示例。显示了绘图,但生成histogram.pgf
的文件为空 --- 不包含绘图。