Matplotlib为所有绘图勾选sansserif

2024-06-02 04:51:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用pgf在matplotlib中实现无衬线坐标轴标签和记号。我想用rcParams来控制它,这样我就可以在所有后续的绘图中使用它了。目前,我正在使用

"pgf.rcfonts":False,
"pgf.texsystem": "pdflatex",   
"text.usetex": True,                
"font.family": "sans-serif",

我改编自mpl文档。它确实将我在图中的所有文本设置为无衬线。但是,数字是用衬线字体保存的。我希望它们是无衬线的。一旦我强制格式化程序,它的无衬线。有没有办法让它自动这么做?MinEx跟在后面。。。在

^{pr2}$

标签现在是sans。滴答声不是!但是打电话的时候

ax.xaxis.set_major_formatter(FormatStrFormatter('%d'))

是的。在


Tags: textfalse绘图matplotlib标签pgfsanspdflatex
2条回答

根据pgf texsystem example,您需要使用“pfg”后端(mpl.use("pgf"))并选择要使用的字体:

style = {
        "pgf.texsystem": "pdflatex",   
        "text.usetex": True,                
        "pgf.preamble": [
         r"\usepackage[utf8x]{inputenc}",
         r"\usepackage[T1]{fontenc}",
         r"\usepackage{cmbright}",
         ]
        }

enter image description here

或者,您可以使用格式化程序,它不会将ticklabels格式化为latex math(即不会将它们放入美元符号中)。在

可以通过设置来调整默认的ScalarFormatter不使用latex数学

^{pr2}$

问题与乳胶有关。您只需要加载额外的cmbright包来启用sans-serif数学字体。在

在类Debian系统上:

sudo apt install texlive-fonts-extra

在Fedora上:

^{pr2}$

然后使用以下样式尝试代码:

style = {   
        "text.usetex": True,                
        "font.family": "sans-serif"
        "text.latex.preamble" : r"\usepackage{cmbright}"
        }

相关问题 更多 >