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之间。即使所有数据都超出了这个范围,窗口也不会改变。而且这个窗口只能放大,不能缩小,这就成了一个大问题。我找不到任何地方可以设置窗口的大小,也不知道默认的设置是什么。我需要窗口能够自动适应数据,但我找不到任何能做到这一点的函数(奇怪的是,autoscale_on(True)并没有起作用)。因为数据变化很大,所以设置固定的限制也不行。我该怎么才能让这个图表正常显示呢?
1 个回答
12
我不确定这是不是你想要的,如果不是的话我可以改一下。
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()
希望这能帮到你。