颜色,matplotlib(使用LaTeX)中部分文本的粗体,带有pdf输出?

时间:2018-07-09 20:39:05

标签: python pdf matplotlib colors latex

我正在创建一个要在Python中使用matplotlib保存为PDF的图形。 (仅)图形标题的第一个字母需要加粗,并使用特定的(自定义)颜色。最低限度,我认为以下方法可以工作(非自定义颜色):

fig,ax = plt.subplots(1)
ax.plot(1,1)
ax.set_title(r'{\bf\color{red} A}: absquatulate')
plt.savefig('test.pdf')

但事实并非如此。

一个人可以(我找不到参考文献)使用PGF后端麻烦得多,以获得一些颜色,但是当使用r'\bf'时,这样做会失败:

import matplotlib.pyplot as plt
pgf_with_latex = {
        "text.usetex": True, 
        "pgf.rcfonts": False, 
        "pgf.preamble": [
            r'\usepackage{color}', 
            r'\definecolor{colorB}{rgb}{ 0.1, 0.5, 0.999 }'

                ]
    }
matplotlib.rcParams.update(pgf_with_latex)
fig,ax = plt.subplots(1)
ax.plot(1,1)
ax.set_title(r'{\bf\color{colorB} A}: absquatulate')
plt.savefig('test.pdf')

如何使\ bf \ color同时工作?

1 个答案:

答案 0 :(得分:0)

实际上,以下工作原理(使用\bfseries,我发现它需要单独的嵌套花括号):

#!/usr/bin/python
import matplotlib
from matplotlib.backends.backend_pgf import FigureCanvasPgf
matplotlib.backend_bases.register_backend('pdf', FigureCanvasPgf)

pgf_with_latex = {
        "text.usetex": True, 
        "pgf.preamble": [
            r'\usepackage{color}', 
            r'\definecolor{colorB}{rgb}{ 0.1, 0.5, 0.999 }'

                ]
    }
import matplotlib
matplotlib.rcParams.update(pgf_with_latex)
import matplotlib.pyplot as plt
plt.figure(figsize=(2,2))
plt.plot(1,1)
plt.title(r'{ \textcolor{colorB} {\bfseries A}}: absquatulate')
plt.savefig('test.pdf')

enter image description here