Matplotlib轴标签:\theta不工作\theta工作

Matplotlib轴标签:\theta不工作\theta工作,matplotlib,axis-labels,Matplotlib,Axis Labels,我在matplotlib有一种奇怪的行为。使用下面的方法,我得到了一个漂亮而闪亮的大θ。只要我使用\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

我在matplotlib有一种奇怪的行为。使用下面的方法,我得到了一个漂亮而闪亮的大θ。只要我使用
\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字符吗?如何获得一个?

使用
\\theta
完成了这项工作。无论如何,在我看来,这确实是一种奇怪的行为,无论是
\theta
还是
\theta
,都应该被固定下来。对此有何想法?

如果指定字符串为原始文本(引号前的
r
),则该字符串有效。像这样:

plt.ylabel(r"$\dot{\Theta}$[deg/s]")
您得到意外结果的原因是
\t
表示选项卡。因此,如果您键入
\theta
,它将被解析为
\t
,后面是
heta
。如果将其指定为原始字符串,则不会处理反斜杠和python转义


如果不使用原始字符串,则必须转义反斜杠(
\\
),以便python将其视为反斜杠而不是制表符(例如\theta而不是\t和heta)。这就是为什么
\\theta
做这项工作的原因。为了避免总是要写双反斜杠,请在使用latex时使用原始字符串,因为它对特殊字符使用了很多反斜杠。

您的回答基于python中的误读字符串。当您写入'\\t'时,您将跳过斜杠。如果不转义“\”,python将解释字符串,因为它应该包含一个制表符(符号为\t)。这就是为什么要在它前面加上一个标签。joris建议的解决方案也是可能的,因为它告诉python将原始字符串传递给latex,而不是解释它。非常感谢!