[英]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.