Matplotlib轴标签:\ theta不起作用\ Theta

时间:2012-04-29 08:27:01

标签: matplotlib axis-labels

我在matplotlib中有一种奇怪的行为。使用以下我得到一个漂亮和闪亮的大theta。我一使用\theta代替\Theta,我就会

  

赫塔

作为轴标签

plt.figure(**pd.figpropsHP)
line=pd.lineCycler()
for i in range(2):
    for j in range(length-1):
        velocity[i,j]=(velocity[i,j+1]-velocity[i,j])*1000 #multiplied with sampling rate
    plt.plot(velocity[i,startstop[0]:startstop[1]],**next(line))  
        #plt.show(pPosition)
plt.xlabel("t[ms]")    
plt.ylabel("$\dot{\Theta}$[deg/s]")  
plt.ylim(-3000,-3000+yrangeV)
plt.annotate('30ms',fontsize='9', xy=(30, -1000),xytext=(40, -1000),verticalalignment='center',arrowprops=myarrow)
plt.annotate('8ms',fontsize='9', xy=(8, -1700),xytext=(40, -1700),verticalalignment='center',arrowprops=myarrow)
plt.axvline(x=span2Stop,lw='0.3',c='0.5')
plt.axvspan(spanStart, spanStop, facecolor='0.9', alpha=1,edgecolor='0.9',lw=0)
plt.tight_layout()
plt.savefig(imagePath + "collisionTestbedVmot.pdf")

任何想法我做错了什么?我很遗憾没有时间开始花哨的东西(乳胶整合等)。我可以使用utf8字符吗?我怎么得到一个?

2 个答案:

答案 0 :(得分:26)

如果指定字符串是原始文本(引号前面为r),则可以正常工作。像这样:

plt.ylabel(r"$\dot{\Theta}$[deg/s]")

您获得意外结果的原因是\t表示标签。因此,如果您输入\theta,则会将其解析为\t并跟随heta。如果将其指定为原始字符串,则不会处理反斜杠和python转义。

如果你不使用原始字符串,你必须转义反斜杠(\\),以便python将其视为反斜杠而不是标签符号(因此\ theta而不是\ t和\ theta) )。这就是\\theta完成这项工作的原因。为了避免总是要写双反斜杠,在使用latex时使用原始字符串,因为它对特殊字符使用反斜杠。

答案 1 :(得分:5)

使用\\theta完成了这项工作。无论如何,这确实是一种奇怪的行为,在我看来,无论是\theta还是\Theta,都应该修复它。有什么想法吗?