2012-04-23 13 views
14

साथ केंद्रित बार चार्ट सलाखों जहां एक्स-अक्ष तिथियां दी गई हैं पाने के लिए, मैं कुछ इस तरह कर रहा हूँ:matplotlib दिनांकों

import numpy as np 
import matplotlib.pyplot as plt 
import datetime 

x = [datetime.datetime(2010, 12, 1, 0, 0), 
    datetime.datetime(2011, 1, 1, 0, 0), 
    datetime.datetime(2011, 5, 1, 1, 0)] 
y = [4, 9, 2] 

ax = plt.subplot(111) 
barWidth=20 
ax.bar(x, y, width=barWidth) 
ax.xaxis_date() 

plt.show() 

enter image description here

हालांकि, भूखंडों एक्स के आसपास केंद्रित नहीं कर रहे हैं। यदि पहले बार प्राप्त करने के लिए ax.bar (x-barWidth/2., y, width = barWidth) का उपयोग किया गया है, जो x के आसपास केंद्रित हैं। क्या एक्स-अक्ष मानों की तारीख होने पर ऐसा करने का कोई तरीका है?

उत्तर

31

मुझे लगता है कि आप bar विधि के लिए कीवर्ड चाहते हैं।

अपने उदाहरण में मामूली परिवर्तन:

import numpy as np 
import matplotlib.pyplot as plt 
import datetime 

x = [datetime.datetime(2010, 12, 1, 0, 0), 
    datetime.datetime(2011, 1, 1, 0, 0), 
    datetime.datetime(2011, 5, 1, 1, 0)] 
y = [4, 9, 2] 

ax = plt.subplot(111) 
barWidth=20 
ax.bar(x, y, width=barWidth, align='center') #< added align keyword 
ax.xaxis_date() 

plt.savefig('baralign.png') 
plt.show() 

निम्न चित्र को नेतृत्व:

enter image description here

यह यदि आप जानते हैं, जहां देखने के लिए एक बहुत सीधे आगे का जवाब है। matplotlib में एक व्यापक दस्तावेज है, और प्रत्येक साजिश विधि के लिए डेवलपर्स a detailed description of the keyword arguments प्रदान करते हैं।

+0

बिल्कुल सही। किसी भी तरह से मैं इसे याद किया। बहुत बहुत धन्यवाद। – imsc