2011-11-25 8 views
23

मैं एक परियोजना के लिए ऐतिहासिक स्टॉक डेटा का दृश्यता बना रहा हूं, और मैं बूंदों के क्षेत्रों को हाइलाइट करना चाहता हूं। उदाहरण के लिए, जब स्टॉक में महत्वपूर्ण ड्रॉडाउन का सामना करना पड़ रहा है, तो मैं इसे लाल क्षेत्र से हाइलाइट करना चाहता हूं।एक matplotlib साजिश में, क्या मैं विशिष्ट एक्स-वैल्यू श्रेणियों को हाइलाइट कर सकता हूं?

क्या मैं इसे स्वचालित रूप से कर सकता हूं, या मुझे आयताकार या कुछ आकर्षित करना होगा?

+0

आप स्वचालित रूप से एक आयत बनाएं सकता है ... आप पहले से ही एक्स मूल्यों जो होने वाली प्रकाश डाला क्षेत्र के शुरू/रोक को परिभाषित है? यदि ऐसा है, तो आप उस सेक्शन को हाइलाइट करने के लिए आयताकार पैच खींच सकते हैं (अगर आपको उदाहरण की आवश्यकता है तो मुझे बताएं!) – Daan

उत्तर

45

axvspan (और y-axis के क्षेत्र को हाइलाइट करने के लिए axhspan) पर एक नज़र डालें।

import matplotlib.pyplot as plt 

plt.plot(range(10)) 
plt.axvspan(3, 6, color='red', alpha=0.5) 
plt.show() 

enter image description here

आप तारीखों का उपयोग कर रहे हैं, तो आप दिनांक matplotlib करने के लिए अपने न्यूनतम और अधिकतम एक्स मूल्यों बदलने की आवश्यकता होगी। विभिन्न स्ट्रिंग टाइमस्टैम्प के लिए datetime ऑब्जेक्ट्स या matplotlib.dates.datestr2num का उपयोग करें।

import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
import datetime as dt 

t = mdates.drange(dt.datetime(2011, 10, 15), dt.datetime(2011, 11, 27), 
        dt.timedelta(hours=2)) 
y = np.sin(t) 

fig, ax = plt.subplots() 
ax.plot_date(t, y, 'b-') 
ax.axvspan(*mdates.datestr2num(['10/27/2011', '11/2/2011']), color='red', alpha=0.5) 
fig.autofmt_xdate() 
plt.show() 

enter image description here

+0

मैं अपने एक्स-अक्ष के लिए तिथियों का उपयोग कर रहा हूं, और मुझे इसे काम करने में परेशानी हो रही है। कोई सुझाव? – Alex

+0

संपादन देखें। आपको अपनी तिथियों को matplotlib के आंतरिक दिनांक प्रारूप में परिवर्तित करने की आवश्यकता होगी (यह केवल एक फ़्लोटिंग पॉइंट नंबर है, जहां 1 की रेंज 1 दिन से मेल खाती है।) इस से निपटने के लिए विभिन्न कार्यों के लिए 'matplotlib.dates' पर एक नज़र डालें। उम्मीद है की वो मदद करदे! –

+0

क्या यह 3 डी प्लॉट में किया जा सकता है? मैं ज़ेड-अक्ष के साथ एक विशिष्ट टुकड़ा के लिए एक्सवाई विमान को हाइलाइट करना चाहता हूं। – Kartik

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