Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matplotlib中的Helvetica与siunitx_Matplotlib_Latex - Fatal编程技术网

Matplotlib中的Helvetica与siunitx

Matplotlib中的Helvetica与siunitx,matplotlib,latex,Matplotlib,Latex,我想创建与LaTeX文档相匹配的图形,并使用Helvetica字体。 我有胶乳 \usepackage{helvet} \renewcommand{\familydefault}{\sfdefault} 设定 Python中的代码如下所示: import matplotlib.pyplot as plt import numpy as np import locale plt.rc('text',

我想创建与LaTeX文档相匹配的图形,并使用Helvetica字体。 我有胶乳

\usepackage{helvet}                                             
\renewcommand{\familydefault}{\sfdefault}   
设定

Python中的代码如下所示:

import matplotlib.pyplot as plt
import numpy as np
import locale

plt.rc('text', usetex=True)
plt.rcParams['text.latex.preamble'] = [
    r'\usepackage[detect-all,locale=DE]{siunitx}',  #SI-Einheiten, Komma
    r'\usepackage{helvet}',                         #Helvetica als Schrift
    r'\usepackage{icomma}']                        
locale.setlocale(locale.LC_NUMERIC, "de_DE.UTF-8")      
plt.ticklabel_format(useLocale=True)            

x = [1, 2, 3, 4]
y = [5, 6, 7.2, 8.1]
plt.plot(x, y, marker="o", label="setting1")
plt.xticks(np.arange(1.0, 4.2, step=0.5))
plt.xlabel("x (\si{\milli\metre})")
plt.ylabel("y (\si{\pascal})")
plt.legend()
plt.grid(True)

plt.savefig('test.pdf', bbox_inches='tight')

问题是,图中的“Pa”与LaTeX中的“Pa”不匹配,将其添加到matplotlibrc文件对我来说很有效

mathtext.fontset : custom
mathtext.it : Helvetica:italic
另外,我需要在我的
/usr/local/anaconda3/lib/python3.7/site packages/matplotlib/mpl data/fonts/ttf
目录中有Helvetica-sloble.ttf。Olga Botvinnik在她的博客中有一些很好的说明。总有一天,我会在我的电脑上放一套类似的指令

请注意,您必须清除
~/.matplotlib
下的缓存才能刷新此缓存


Matplotlib表示不支持自定义字体集,这可能会在Matplotlib的未来更新中全部中断

添加Olga Botvinnik博客的链接以供参考: