Matplotlib自动缩放

9
我需要使用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-~.8),无论数据如何,即使所有数据都在该窗口之外。结果窗口不能缩小,只能放大,所以这是一个主要问题。我找不到任何设置任何类型大小的地方,也找不到有关默认值的详细信息。我需要窗口自动适应数据,但我找不到任何可以实现它的函数(因为某种原因,autoscale_on(True)并不能实现)。数据高度可变,因此设置硬限制不是一种选择。如何使其正常显示?

2个回答

13

不确定这是否是您想要的,但如果这不是您要找的内容,我可以进行更改。

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

希望能帮到你。


5
autoscale_view(True,True,True)修复了问题。现在如果我可以找到一个解释它在可怕的文档中技术上是如何运作的就好了。 - Elliot
应该可以在这里找到:http://matplotlib.sourceforge.net/api/axes_api.html。不过文档不太好。 - River

1

请查看Eli Bendersky的网站,特别是这篇文章。文章底部的示例可以下载。它允许您设置x轴是否跟随绘图或保持静态,而y轴则随数据变化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接