从 Jupyter Notebook 显示和保存 PGF 图

dzi*_*iou 5 python latex matplotlib pgf jupyter-notebook

我准备了一个带有许多 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')
Run Code Online (Sandbox Code Playgroud)

这是启用matplotlib 配置的输出。histogram.pgf文件已生成并保存,但未显示绘图。

启用配置

这是禁用 PGF 的 matplotlib 配置时的示例。显示了绘图,但生成的histogram.pgf文件为空 --- 不包含绘图。

在此处输入图片说明

Dav*_*vid 0

我无法重现你的问题

在此输入图像描述

在此输入图像描述

我必须运行第一个单元格三到四次,否则我将看不到该数字。

%matplotlib inline

顺便说一句,我使用的是 Ubuntu 16.04、Python 3.7.6 和 Matplotlib 3.1.1。