2012-06-19 19 views
7

में मिलीसेकंड दिखा रहा है मैं एचएच में समय के एक समारोह के रूप में डेटा प्लॉट करने के लिए matplotlib का उपयोग कर रहा हूं: mm: ss.ms प्रारूप जहां एमएस मिलीसेकंड है। हालांकि, मुझे साजिश में मिलीसेकंड नहीं दिख रहा है। क्या उन्हें भी जोड़ना संभव है? एक स्वत: फ़ॉर्मेटर कि मिलीसेकेंड कभी नहीं भूखंडों:matplotlib

dates = matplotlib.dates.datestr2num(x_values) # convert string dates to numbers 
plt.plot_date(dates, y_values) # doesn't show milliseconds 
+1

अरे, कृपया कुछ कोड पोस्ट करें जो दिखाता है कि आप क्या कर रहे हैं। इस तरह से मदद करने के लिए थोड़ा आसान है, चीयर्स। – fraxel

+0

आपको प्रदर्शित होने वाले दशमलव स्थानों की संख्या को परिभाषित करने के लिए कुछ योग्यता में जोड़ने की आवश्यकता हो सकती है, उदाहरण के लिए,% .2f। हालांकि, आपके अधिक कोड को देखे बिना, यह जानना मुश्किल है। – cosmosis

+0

क्या आप कृपया एक उदाहरण पोस्ट कर सकते हैं? धन्यवाद – Bob

उत्तर

8

समस्या यहाँ प्रारूप करने के लिए एक वर्ग टिक्स है, और plot_date कुछ है कि आप नहीं चाहते हैं कि वर्ग सेट है।

इसे बदलने के लिए, आपको matplotlib.dates.AutoDateFormatter से अपने स्वयं के फॉर्मेटर में बदलना होगा। matplotlib.dates.DateFormatter (fmt) एक datetime.strftime प्रारूप स्ट्रिंग के साथ एक formatter बनाता है। मुझे यकीन नहीं है कि यह मिलीसेकंड दिखाने के लिए कैसे प्राप्त करें, लेकिन यह माइक्रोसेकंड दिखाएगा, जो मुझे आशा है कि आपके लिए काम करेगा; यह सब के बाद, सिर्फ एक अतिरिक्त शून्य है। इस कोड को आजमाएं:

dates = matplotlib.dates.datestr2num(x_values) # convert string dates to numbers 
plt.plot_date(dates, y_values) # doesn't show milliseconds by default. 

# This changes the formatter. 
plt.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter("%H:%M:%S.%f")) 

# Redraw the plot. 
plt.draw()