繁体   English   中英

同一个 Matplotlib 标签中的多种字体大小

[英]Multiple font sizes in same Matplotlib label

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

我希望能够增加一个字母的字体(比如 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)

这是 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 ... 命令的各种版本)。

一种解决方案是使用 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。 查看我即将发布的其他答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM