2012-04-29 37 views
11

Tôi có một hành vi lạ trong matplotlib. Sử dụng sau đây tôi nhận được một theta lớn đẹp và sáng bóng. Ngay sau khi tôi sử dụng \theta thay vì \Theta tôi nhận đượcNhãn nhãn Matplotlib: theta không hoạt động Theta không

heta

như một nhãn trục

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") 

Bất kỳ ý tưởng những gì tôi đang làm sai? Tôi buồn bã không có thời gian để bắt đầu công cụ ưa thích (hội nhập mủ cao su, vv). Thay vào đó, tôi có thể sử dụng ký tự utf8 không? Làm thế nào để tôi có được một?

Trả lời

21

Nếu bạn chỉ định rằng chuỗi là văn bản thô (một r trước dấu ngoặc kép), nó hoạt động. Như thế này:

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

Lý do bạn nhận được kết quả không mong muốn là \t là tab. Vì vậy, nếu bạn nhập \theta, nó được phân tích cú pháp là \t và sau heta. Nếu bạn chỉ định nó là một chuỗi thô, dấu gạch chéo ngược và dấu vết của python sẽ không được xử lý.

Nếu bạn không sử dụng chuỗi thô, bạn phải thoát dấu gạch chéo ngược (\\) để python coi đó là dấu gạch chéo ngược chứ không phải là biểu tượng tab (như \ theta chứ không phải là \ t và heta). Đó là lý do tại sao \\theta thực hiện công việc. Để tránh luôn phải viết hai dấu gạch chéo ngược, hãy sử dụng chuỗi thô khi sử dụng latex, vì nó sử dụng dấu gạch chéo ngược rất nhiều cho các ký tự đặc biệt.

3

sử dụng \\theta đã thực hiện công việc. Dù sao đây thực sự là một hành vi kỳ lạ mà, trong mắt tôi, nên được cố định để làm điều đó hay không cho dù đó là \theta hoặc \Theta. Bất kỳ suy nghĩ về điều đó?

+3

thư trả lời của bạn dựa trên chuỗi hiểu lầm trong python. Khi bạn viết '\\ t' bạn thoát khỏi dấu gạch chéo. Nếu bạn không thoát khỏi python '\' thì diễn giải chuỗi của bạn vì nó sẽ bao gồm một thẻ (mà dấu hiệu là \ t). Đó là lý do tại sao có được 'heta' và một tab ở phía trước của nó. Các giải pháp đề xuất bởi joris cũng có thể, vì nó nói với python để vượt qua một chuỗi thô để latex và không giải thích nó. – Oz123

+0

OK, giờ tôi đã hiểu. Cảm ơn rất nhiều! –

Các vấn đề liên quan