我需要使用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)不会这样做)。数据变化很大,因此设置硬限制不是一种选择。如何正确显示?
答案 0 :(得分: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()
希望有所帮助。
答案 1 :(得分:1)
查看Eli Bendersky's Website,特别是this post。可以下载帖子底部的示例。它允许您设置x轴是否将跟随绘图,或者在y轴随数据变化时保持静态。