我打算画一个像这样的子情节:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi,1000)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(pow(x,2))
plt.rc('font',size = 16,family = 'Simhei')
plt.rcParams['axes.unicode_minus'] = False
plt.rc('text',usetex = True)
pic1 = plt.subplot(2,2,1)
pic1.plot(x,y1,'r--',label = '$\sin{x}$'); pic1.legend()
pic1.set_title('第一个图像')
pic2 = plt.subplot(2,2,2)
pic2.plot(x,y2,'k--',label = '$\cos{x}$') ; pic2.legend()
pic2.set_title('第二个图像')
pic3 = plt.subplot(2,1,2)
pic3.plot(x,y3,'r--',label = '$\sin{(x^2)}$') ; pic3.legend()
pic3.set_title('第三个图像')
plt.show()
字符串
但它会返回如下错误:
(c:/texlive/2022/texmf-dist/tex/latex/type1cm/type1cm.sty)
(c:/texlive/2022/texmf-dist/tex/latex/cm-super/type1ec.sty
(c:/texlive/2022/texmf-dist/tex/latex/base/t1cmr.fd))
(c:/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty)
(c:/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty
(c:/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty)
(c:/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty
(c:/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty)))
(c:/texlive/2022/texmf-dist/tex/latex/underscore/underscore.sty)
(c:/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty)
(c:/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
No file b09c0b82eaeea985330356c98a53236d.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: dvips
! LaTeX Error: Unicode character 第 (U+7B2C)
not set up for use with LaTeX.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.29 {\rmfamily 第
$1$个图像}%
No pages of output.
Transcript written on tmpntafuhs9/b09c0b82eaeea985330356c98a53236d.log.
型
在LaTeX中,我知道我可以使用\usepackage{ctex}
来解决这个问题,但我不能在matplotlib中处理它。我把标题变成了英文,它工作。但我需要一个使用TeX的中文标题
1条答案
按热度按时间a8jjtwal1#
除了使用问题中突出显示的
ctex
包外,这项工作还需要LaTeX的味道,比pdfLaTeX更好地支持Unicode:理想地是XeLaTeX或LuaLaTeX。Matplotlib允许您使用pgf backend来执行此操作。
本文档介绍了应添加到
plt.rcParams
的各种配置选项:关键的是:pgf.texsystem
:指定xelatex
(默认值)、lualatex
或pdflatex
pgf.preamble
:为要生成的LaTeX文档指定自定义前导。这可以包括\usepackage
语句,因此可以使用ctex
或任何其他相关包。