2010-07-09 6 views
8

मुझे एक प्लॉट प्राप्त करने की आवश्यकता है जो matplotlib का उपयोग कर डेटा को स्वचालित रूप से फिट करे। इस कोड को मैं दिया गया था है:Matplotlib autoscale

import matplotlib.pyplot as plt 
from matplotlib.collections import LineCollection 
.... 
lines = LineCollection(mpl.line_holder, colors=mpl.colorholder , linestyle='solid') 
plt.axes().add_collection(lines) 
plt.axes().set_aspect('equal', 'datalim') 
plt.draw() 
plt.show() 

यह एक साजिश बनाता है लेकिन खिड़की हमेशा एक ही है (0- ~ .8) कोई बात नहीं क्या डेटा है, डेटा के सभी कि बाहर है, भले ही खिड़की। परिणामस्वरूप विंडो में ज़ूम आउट करने की कोई क्षमता नहीं है, केवल इसलिए, इसलिए यह एक बड़ी समस्या है। मुझे कहीं भी नहीं मिल रहा है जहां किसी भी प्रकार का आकार निर्धारित किया गया है, न ही द्वितीय डिफ़ॉल्ट विवरणों के विवरण प्राप्त कर सकते हैं। मुझे डेटा को स्वचालित रूप से फिट करने के लिए विंडो की आवश्यकता है, लेकिन मुझे ऐसा कोई फ़ंक्शन नहीं मिल रहा है जो इसे करता है (किसी कारण से, autoscale_on (True) ऐसा नहीं करता है)। डेटा अत्यधिक चरम है, इसलिए हार्ड सीमा निर्धारित करना एक विकल्प नहीं है। मैं इसे सही तरीके से प्रदर्शित करने के लिए कैसे प्राप्त कर सकता हूं?

उत्तर

10

यह सुनिश्चित नहीं है कि आप क्या चाहते थे, लेकिन यदि आप यह नहीं चाहते थे तो मैं इसे बदल सकता हूं।

import matplotlib.pyplot as plt 
from matplotlib.collections import LineCollection 

import pylab as p 

fig = plt.figure() 
pts1 = [] 
pts2 = [] 
for i in range(100): 
    pts1.append([i,i]) 
    pts2.append([-i-3,-i]) 
lines = LineCollection([pts1,pts2], linestyles='solid') 
subplt = fig.add_subplot(111,aspect='equal') 
subplt.add_collection(lines) 
subplt.autoscale_view(True,True,True) 
p.show() 

आशा है कि मदद करता है।

+4

autoscale_view (सही, सही, सही) इस मुद्दे को ठीक किया गया। अब अगर मैं भयानक दस्तावेज में तकनीकी रूप से क्या करता हूं, तो इसका स्पष्टीकरण मिल सकता है। – Elliot

+0

यहां कहीं होना चाहिए: http://matplotlib.sourceforge.net/api/axes_api.html। हालांकि दस्तावेज़ीकरण बहुत अच्छा नहीं है। – River

1

Eli Bendersky's Website पर विशेष रूप से देखें this post। पोस्ट के निचले हिस्से में उदाहरण डाउनलोड किया जा सकता है। यह आपको यह सेट करने की अनुमति देता है कि एक्स अक्ष साजिश का पालन करेगी या डेटा के साथ वाई अक्ष बदलते समय स्थिर रहेगा।