Python 同一Matplotlib标签中的多个字体大小
我试着做一些相对简单的事情: 我希望能够增加一个字母的字体(比如说一个LaTeX变量,比如说30),并将标签中的其他字母保持为特定字体(比如20) 有人有快速的解决方案吗?这对我来说似乎相当复杂。我尝试对标签中的每个“项目”使用Python 同一Matplotlib标签中的多个字体大小,python,matplotlib,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={
{}
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)
一种解决方案是使用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)
这并不理想。另一个选择是通过乳胶。请参阅我将要发布的其他答案。这是使用乳胶的解决方案。我的机器没有安装乳胶,所以我没有仔细测试
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的size命令可以更加精细(您可以指定实际字体,或者使用各种版本的\large、\large、\small\tiny…命令)。此解决方案不如您提供的第一个解决方案强大,因为您无法像fontsize那样有效地控制\large{}和\small{}的大小。rc仍然支持TeX。谢谢,我相信我刚才做的编辑会精确设置字体大小。我无法测试,因为LaTeX不能在我这里的笔记本上运行。是的,这在我的ipython笔记本上不起作用,但我怀疑我的TexLive有点被窃听,所以很难说。还有人检查这个吗?