23

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文字を使用できますか?どうすれば入手できますか?

4

2 に答える 2

42

文字列が生のテキスト(r引用符の前のa)であることを指定すると、機能します。このような:

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

予期しない結果が得られた理由\tは、タブを意味するためです。したがって、と入力すると、次のよう\thetaに解析され\tますheta。生の文字列として指定した場合、円記号とPythonエスケープは処理されません。

生の文字列を使用しない場合は、バックスラッシュ(\\)をエスケープする必要があるため、Pythonはそれをタブ記号ではなくバックスラッシュとして扱います(\ thetとして、\ tおよびhetaとしてではありません)。\\thetaそれが仕事をした理由です。特殊文字にはバックスラッシュを多く使用するため、ラテックスを使用する場合は、常に二重のバックスラッシュを記述する必要がないように、生の文字列を使用してください。

于 2012-04-29T09:10:06.047 に答える
7

使用\\thetaして仕事をしました。とにかく、これは本当に奇妙な動作であり、私の目には、それが\thetaまたは\Theta. それについて何か考えはありますか?

于 2012-04-29T08:32:40.147 に答える