2010-07-09 7 views
8

Ich brauche ein Diagramm, das die Daten automatisch mit Matplotlib passt. Dies ist der Code I gegeben wurde: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() 

Das ein Grundstück schafft aber das Fenster ist immer das gleiche (0- ~ 0,8), egal, was die Daten, selbst wenn alle Daten außerhalb der Fenster. Das resultierende Fenster kann nicht herausgezoomt werden, nur in, so dass dies ein großes Problem ist. Ich kann nirgends finden, wo irgendeine Art von Größenbestimmung eingestellt ist, und ich kann auch keine Details darüber finden, welche Standardwerte sind. Ich brauche das Fenster, um die Daten automatisch anzupassen, aber ich kann keine Funktion finden, die es tut (aus irgendeinem Grund tut autoscale_on (True) es nicht). Die Daten sind sehr variabel, daher ist das Setzen von harten Grenzen keine Option. Wie kann ich das richtig anzeigen lassen?

Antwort

10

Nicht sicher, ob das, was Sie wollten, aber ich kann es ändern, wenn dies nicht das war, was Sie gesucht haben.

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() 

Hoffe, dass hilft.

+4

autoscale_view (True, True, True) behebt das Problem. Nun, wenn ich nur eine Erklärung finden könnte, was es technisch in der schrecklichen Dokumentation macht. – Elliot

+0

Sollte irgendwo hier sein: http://matplotlib.sourceforge.net/api/axes_api.html. Die Dokumentation ist jedoch nicht so gut. – River

1

Werfen Sie einen Blick auf Eli Bendersky's Website, speziell this post. Das Beispiel unten im Beitrag kann heruntergeladen werden. Sie können festlegen, ob die x-Achse dem Plot folgt oder statisch bleibt, während sich die y-Achse mit den Daten ändert.