2013-02-18 18 views
23

में एक्स-अक्ष टिक लेबल की दिनांक स्वरूपण को संपादित करना मैं एक्स-अक्ष पर तिथियों के स्वरूपण को संपादित करना चाहता हूं। नीचे दी गई तस्वीर से पता चलता है कि वे डिफ़ॉल्ट रूप से मेरे बार ग्राफ पर कैसे दिखाई देते हैं। मैं 'दिसंबर' और '2012' की पुनरावृत्ति को हटाना चाहता हूं और एक्स-अक्ष के साथ वास्तविक दिनांक संख्याएं अभी भी प्राप्त करना चाहूंगा।matplotlib

कोई सुझाव है कि मैं यह कैसे कर सकता हूं?

enter image description here

+0

जवाब यहाँ मेरे लिए काम किया: http://stackoverflow.com/questions/30133280/pandas-bar-plot-changes-date -फॉर्मेट – Mahdi

उत्तर

38

संक्षेप में:

import matplotlib.dates as mdates 
myFmt = mdates.DateFormatter('%d') 
ax.xaxis.set_major_formatter(myFmt) 

matplotlib वेबसाइट पर कई उदाहरण। मैं सबसे अधिक उपयोग करता हूं here

+2

'ax.xaxis' का उपयोग किये बिना वैकल्पिक विकल्प है लेकिन 'plt का उपयोग कर रहा है। '? – 3kstc

+0

@ 3kstc शायद, लेकिन मैं ऐसी परिस्थिति की कल्पना नहीं कर सकता जहां राज्य मशीन पर अस्पष्ट रूप से भरोसा करना अधिक स्पष्ट आदेश के लिए बेहतर है। –

+0

सभी संभावित डेटाटाइम प्रारूपों के त्वरित दृश्य के लिए, [strftime.org] (http://strftime.org) का उपयोग करें। – ImportanceOfBeingErnest

3

जबकि पॉल एच द्वारा दिए गए उत्तर में आवश्यक हिस्सा दिखाता है, यह एक पूर्ण उदाहरण नहीं है। दूसरी तरफ matplotlib example बल्कि जटिल लगता है और यह नहीं दिखाता कि दिन का उपयोग कैसे करें।

तो जरूरत यहाँ में सभी के लिए

एक पूर्ण काम कर उदाहरण है:

from datetime import datetime 
import matplotlib.pyplot as plt 
from matplotlib.dates import DateFormatter 

myDates = [datetime(2012,1,i+3) for i in range(10)] 
myValues = [5,6,4,3,7,8,1,2,5,4] 
fig, ax = plt.subplots() 
ax.plot(myDates,myValues) 

myFmt = DateFormatter("%d") 
ax.xaxis.set_major_formatter(myFmt) 

## Rotate date labels automatically 
fig.autofmt_xdate() 
plt.show()