【问题标题】:Multiple font sizes in same Matplotlib label同一 Matplotlib 标签中的多种字体大小
【发布时间】:2021-07-31 18:44:43
【问题描述】:

我正在尝试做一些相对简单的事情:

我希望能够增加一个字母的字体(比如 LaTeX 变量,比如 30),并让标签中的其他字母保持某种字体(比如 20)。

有人有快速的解决方案吗?这对我来说似乎相当复杂。我尝试对标签中的每个“项目”使用{ }

plt.plot(a,b,'g',linewidth=3.5, label = 'a')
plt.plot(c,d,'r',linewidth=3.5, label = 'c')

plt.legend(labelspacing = 1.0,loc=1,prop={'size':40})

plt.xlabel({'a',fontsize=50},{ 'N',fontsize = 20})
plt.ylabel('%',fontsize =30)

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    这是使用 LaTeX 的解决方案。我的机器没有安装LaTeX,所以我没有仔细测试过。

    plt.plot(a,b,'g',linewidth=3.5, label = 'a')
    plt.rc('text', usetex=True)
    plt.legend(labelspacing = 1.0,loc=1,prop={'size':40})
    plt.xlabel(r'{\fontsize{50pt}{3em}\selectfont{}a}{\fontsize{20pt}{3em}\selectfont{}N')
    

    (注意字符串前的r。这告诉 pylab 将字符串作为原始字符串直接发送到 LaTeX,而不是将 \f 和 \s 视为特殊字符)

    您可以使用 LaTeX 的大小命令获得更详细的信息(您可以指定实际字体,或使用各种版本的 \large、\Large、\small \tiny ... 命令)。

    【讨论】:

    • 此解决方案不如您提供的第一个解决方案强大,因为您无法像控制 fontsize 一样有效地控制 \large{} 和 \small{} 的大小。 rc 仍然有 TeX 支持。谢谢
    • 我相信我刚刚所做的编辑会准确设置字体大小。我无法测试,因为 LaTeX 不能在我这里的笔记本电脑上运行。
    • 是的,这在我的 ipython 笔记本上不起作用,但我怀疑我的 TexLive 有点问题,所以很难说。还有人检查这个吗?
    【解决方案2】:

    一种解决方案是使用 text() 并进行多次调用,仔细选择每个字母的去向:

    import pylab as plt
    a=[0,1]
    b=[0,1]
    plt.plot(a,b,'g',linewidth=3.5, label = 'a')
    plt.rc('text', usetex=True)
    plt.legend(labelspacing = 1.0,loc=1,prop={'size':40})
    
    plt.text(0.45,-0.08,'a',fontsize=50)
    plt.text(0.53,-0.08, 'N',fontsize = 20)
    

    这并不理想。另一种选择是通过 LaTeX。请参阅我即将发布的其他答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 2013-01-16
      • 1970-01-01
      • 2019-07-23
      • 2019-08-05
      相关资源
      最近更新 更多