2014-12-22 6 views
6

मैं एक आसान समस्या के लिए अपने सिर को खरोंच कर रहा हूं। मैं बस Matplotlib में एक तीर की headwidth समायोजित करने की कोशिश कर रहा हूँ।Matplotlib अज्ञात संपत्ति "हेडविड्थ" और "head_width"

यहाँ एक काम कर कोड है:

import numpy as np 
import matplotlib.pyplot as plt 
t = np.linspace(0,2*np.pi,500) 
y = np.sin(t) 

fig = plt.figure(figsize=(10,5)) 
ax = fig.add_subplot(111) 
ax.plot(t,y) 

ax.annotate('', xy=(1, -1), xytext=(2, 0), 
arrowprops=dict(arrowstyle='<->', facecolor='black')) 

Sine plot with double-headed arrow

और दिखाया गया है कि यह एक अच्छा दिखने डबल सिरों वाला तीर भूखंडों। अब जब मैं ऐसा करके headwidth को बदलने के लिए चाहते हैं:

ax.annotate('', xy=(1, -1), xytext=(2, 0), 
arrowprops=dict(arrowstyle='<->', facecolor='black',headwidth=10)) 

या

ax.annotate('', xy=(1, -1), xytext=(2, 0), 
arrowprops=dict(arrowstyle='<->', facecolor='black',head_width=10)) 

त्रुटि दी है:

AttributeError: Unknown property headwidth 

या

AttributeError: Unknown property head_width 

यह मैं की तरह लगता है Google के माध्यम से कोई संसाधन नहीं मिल सकता है जो addr इस सरल समस्या का निबंध। क्या कोई रास्ता है?

आपके समय और ध्यान के लिए बहुत बहुत धन्यवाद!

+0

कुल्हाड़ी क्या है? आप कोड में कुल्हाड़ी की परिभाषा याद करते हैं। –

+0

सिर के लिए धन्यवाद! मैंने अभी इसे जोड़ा लापता टुकड़े के लिए सभी को खेद है! –

+0

arrowprops = dict (arrowstyle = '<->', facecolor = 'black', head_width = 10) केवल एक सामान्य शब्दकोश प्रारंभिकरण है। कोई त्रुटि नहीं होनी चाहिए। समस्या को दोबारा करने के लिए मुझे आपका पूरा कोड चाहिए। –

उत्तर

10

जब आप अपने arrowprops dict में एक arrowstyle निर्दिष्ट करते हैं, आप नहीं बल्कि YAArrow की तुलना में एक FancyArrowPatch है, जो अलग-अलग कीवर्ड लेता है (लेकिन, तो आप शायद जानते थे कि head_width उपयोग करने के लिए अपने प्रयास को देखते हुए) के उदाहरण में मिलता है। प्रलेखन से अनजान क्या है कि जब आप तीरस्टाइल निर्दिष्ट करते हैं, जिसमें डिफ़ॉल्ट हेड सेटिंग्स और इत्यादि हैं, तो आप तीरस्टाइल स्ट्रिंग में उन विशेष सेटिंग्स को संशोधित करते हैं। यह प्रलेखन here (जोर मेरा) से प्रासंगिक रेखा है:

तीर का वर्णन वर्णन करता है कि फैंसी तीर कैसे खींचा जाएगा। यह उपलब्ध तीरस्टाइल नामों, की वैकल्पिक अल्पविराम से अलग विशेषताओं, या तीर स्टाइल उदाहरण के साथ स्ट्रिंग हो सकता है।

आप के लिए निम्न यह काम करेंगे अपने शब्दकोश को बदलते हैं:

arrowprops=dict(arrowstyle='<->, head_width=10', facecolor='black') 

सूचना है कि head_width विनिर्देश शैली के बाद एक अल्पविराम निम्न स्ट्रिंग में है। इसके अलावा: 10 उस के लिए एक बड़ी संख्या है .... 0.5 बेहतर हो सकता है!

+2

वाह महान सामान, @ अजेन! वह एक * सूक्ष्म * दस्तावेज है! जब तक आपने इसे इंगित नहीं किया तब तक मैं अपना सिर तब तक नहीं मिला। अब मैं अपने तीर संपादित कर सकता हूँ! मेरा दिन बचाने के लिए धन्यवाद !!!!! –

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