2010-09-10 11 views
24

में दो बिंदुओं के बीच एक क्षेत्र को छायांकन करना matplotlib साजिश में आप दो बिंदुओं के बीच एक छायांकित क्षेत्र कैसे जोड़ते हैं?matplotlib plot

उदाहरण में matplotlib साजिश नीचे, मैंने Skitch का उपयोग करके छायांकित, पीले क्षेत्र को मैन्युअल रूप से जोड़ा। मैं जानना चाहता हूं कि इस संस-स्कीच को कैसे करना है।

alt text

उत्तर

26

तुम बस समारोह axvspan उपयोग कर सकते हैं। इसका लाभ यह है कि axhspan के मामले में ऊर्ध्वाधर क्षेत्र (या क्षैतिज, चाहे आप प्लॉट को पैन/ज़ूम कैसे करते हैं, इस पर ध्यान दिए बिना छायांकित रहेगा। एक पूर्ण उदाहरण here है।

import numpy as np 
import matplotlib.pyplot as plt 

x = np.linspace(0, 20, 500) 
y = np.cos(3*x) - 2*np.cos(5*x) + 0.5*np.cos(6*x) 

a = 5 
b = 15 

plt.axvspan(a, b, color='y', alpha=0.5, lw=0) 
plt.plot(x, y) 
plt.savefig('shade.png', dpi=300) 
plt.show() 

कि एक परिणाम के enter image description here

+2

के रूप में देता है 'axvspan' इस मामले में' fill_between' की तुलना में काफी बेहतर विकल्प है:

नीचे एक सरल उदाहरण देखें। –

+1

मैं आपके उत्तर को संपादित करने के बीच में था। उम्मीद है कि ठीक है! –