0

我无法将使用 matplotlib 制作的绘图导出到 pgf。如果轴标签中没有粗体符号,则没有问题,但出现错误。

这是我的代码:

import seaborn as sns
import numpy as np
import matplotlib as mpl
mpl.rcParams.update(mpl.rcParamsDefault)
mpl.use('pgf')
mpl.rcParams.update({
    'pgf.texsystem': "pdflatex",
    'font.family': 'serif',
    'text.usetex': True,
    'pgf.rcfonts': False,
    'font.serif': ["Computer Modern Roman"],
})
mpl.rc('text.latex', preamble=r'\usepackage{bm}')
import matplotlib.font_manager
import matplotlib.pyplot as plt

f, ax = plt.subplots(figsize = (8,4))
sns.set_color_codes("colorblind")
b = sns.barplot(x=probs, y=words, color='b')
ax.set(xlabel = r'{Probability of word, $p(w|\boldsymbol{\pi}_{ML})$}',
    ylabel = r'{Word, $w$}' )
b.set_yticklabels(labels=b.get_yticklabels(), va='center')
f.tight_layout()
plt.savefig('graph.pgf', format='pgf')

我得到的错误是:

LatexError: LaTeX process halted
! Undefined control sequence.
<argument> ...rd, \(\displaystyle p(w|\boldsymbol 
                                                  {\pi }_{ML})\)}
<*> ...displaystyle p(w|\boldsymbol{\pi}_{ML})\)}}
                                                  
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on texput.log.

我认为包括\usepackage{bm}在我的序言中会绕过这个问题?

任何帮助将不胜感激!

4

1 回答 1

1

本周第二次......尝试调试和搜索的时间让我在 stackoverflow 上发布后立即找到了解决方案。

解决方案:

mpl.rcParams.update({
    'pgf.texsystem': "pdflatex",
    'font.family': 'serif',
    'text.usetex': True,
    'pgf.rcfonts': False,
    "pgf.preamble": "\n".join([
         r"\usepackage{bm}",
    ]),
    'font.serif': ["Computer Modern Roman"],
    'text.latex.preamble': pream,
})
于 2021-12-01T17:15:41.100 回答