2010-07-09 183 views
8

我需要使用matplotlib自动获取适合数据的图。这是我得到的代码:Matplotlib自动缩放

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-〜0.8)不管数据是什么,即使所有的数据都是之外的窗口。由此产生的窗口无法缩小,只能在缩小,所以这是一个主要问题。我找不到任何设置尺寸的地方,II也不能找到有关默认设置的详细信息。我需要窗口自动适合数据,但我找不到任何功能(因为某些原因,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(True,True,True)修复了这个问题。现在,如果我能够找到它在可怕文档中技术上做了什么的解释。 – Elliot 2010-07-09 19:41:00

+0

应该在这里的某个地方:http://matplotlib.sourceforge.net/api/axes_api.html。虽然文档不太好。 – River 2010-07-12 16:05:28