2012-04-29 15 views
11

मैं matplotlib में एक अजीब व्यवहार किया है। निम्नलिखित का उपयोग करके मुझे एक अच्छा और चमकीला बड़ा थाटा मिलता है। जैसे ही मैं \Theta के बजाय \theta का उपयोग के रूप में मैं एक धुरी लेबलmatplotlib अक्ष लेबल: थीटा थीटा काम नहीं करता करता

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

कोई भी विचार मैं गलत क्या कर रहा हूँ के रूप में

Heta

मिल सकता है? मुझे दुख की बात है कि फैंसी सामान (लेटेक्स एकीकरण इत्यादि) शुरू करने के लिए कोई समय नहीं है। क्या मैं इसके बजाय utf8 वर्ण का उपयोग कर सकता हूं? मैं यह कैसे प्राप्त करूं?

उत्तर

21

यदि आप निर्दिष्ट है कि स्ट्रिंग कच्चे पाठ (एक r उद्धरण चिह्न से पहले) है, यह काम करता है। इस तरह:

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

कारण आप एक अप्रत्याशित परिणाम मिला कि \t एक टैब का मतलब है। तो अगर आप टाइप \theta, यह \t और heta निम्नलिखित के रूप में पार्स किया गया है। यदि आप इसे एक कच्ची स्ट्रिंग निर्दिष्ट करते हैं, बैकस्लाश और पायथन से बचने का इलाज नहीं किया जाएगा।

यदि आप कच्चे तारों का उपयोग नहीं करते हैं, तो आपको बैकस्लैश (\\) से बचना होगा, इसलिए पाइथन इसे बैकस्लैश के रूप में मानता है, न कि टैब प्रतीक के रूप में (इसलिए \ theta और \ t और heta के रूप में नहीं)। यही कारण है कि \\theta ने काम किया। हमेशा से बचने के लिए डबल बैकस्लाश लिखना है, लेटेक्स का उपयोग करते समय कच्चे तारों का उपयोग करें, क्योंकि यह विशेष पात्रों के लिए बैकस्लाश का उपयोग करता है।

3

\\theta का उपयोग कर काम किया है। वैसे भी यह वास्तव में एक अजीब व्यवहार है कि, मेरी आँखों में, या यह करने के लिए किया जाना चाहिए नहीं कोई फर्क नहीं पड़ता कि क्या यह \theta या \Theta है। इसके बारे में कोई विचार?

+3

आपके उत्तर अजगर में तार गलतफहमी की आधारित है। जब आप '\\ t' लिखते हैं तो आप स्लैश से बचते हैं। यदि आप '\' पायथन से बच नहीं पाते हैं तो आपकी स्ट्रिंग का अर्थ है क्योंकि इसमें एक टैब शामिल होना चाहिए (जिस पर चिह्न \ t है)। यही कारण है कि 'हेटा' और इसके सामने एक टैब क्यों मिलता है। जोरिस द्वारा हल किया गया समाधान भी संभव है, क्योंकि यह पाइथन को लेटेक्स को कच्ची स्ट्रिंग पास करने और इसकी व्याख्या नहीं करने के लिए कहता है। – Oz123

+0

ठीक है, अब मुझे मिल गया। बहुत बहुत धन्यवाद! –

संबंधित मुद्दे