我正在使用matplotlib以交互方式查看大型数据集。出于性能原因,我想缩放/平移视图而不重绘它。创建新的x视图范围并将其应用于set_xlim(left,right)
很容易。但似乎没有一种自动方式来显示新视图,y轴根据新的x范围适当限制值。
autoscale(enable=True, axis='y')
从 all 中查找绘制的数据的y max和min,而不是基于x视图限制的y数据。是否有任何此类模式或功能,或者必须set_ylim()
与手动计算的范围一起使用?
以下是一个例子:
#! /usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
plt.ioff()
fig = plt.figure(1)
ax = plt.subplot(111, axisbg='black')
tick = np.arange(10)
ax.grid(b=True, color='white')
ax.autoscale(enable=True, axis='x', tight=False)
ax.autoscale(enable=True, axis='y', tight=True)
ax.plot(tick, color='#ff3333', linestyle='-')
fig.canvas.draw()
raw_input('enter:')
ax.set_xlim(2, 5)
fig.canvas.draw()
raw_input('enter:')
ax.set_xlim(1, 6)
fig.canvas.draw()
raw_input('enter:')
答案 0 :(得分:0)
对不起,我提交了一个错误答案的答案!
但我认为手动计算范围并不难。或者您可以使用plt.ion()并使用放大镜适当放大。
答案 1 :(得分:0)
我从来没有找到通过matplotlib来确定基于x的渲染y限制的方法。
然而,有两个因素似乎不需要这样做。
总之,增益大约为10-20倍,这使得数据集实时交互式浏览,因此不需要额外的黑客攻击。