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

时间:2015-01-08 19:58:08

标签: python matplotlib

我试图做一些相对简单的事情:

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

谢谢!

2 个答案:

答案 0 :(得分:3)

以下是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 ...命令)。

答案 1 :(得分:1)

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