具有可伸缩/可更新x轴的Matplotlib图

时间:2015-04-04 15:43:23

标签: python matplotlib

是否可以创建一个图表,其中滑块可以更新x轴的长度/位置?

Here是所需滑块类型的示例。

可以找到一个类似的matplotlib滑块here。不幸的是,正如你所看到的,没有关于它是如何工作的文档/解释 - 这使得它很难理解/适应!

我想添加的情节类型非常简单,这是一个小的随机示例:

import matplotlib.pyplot as plt
import random

li = []
for x in xrange(100):
    li.append(random.randint(0,20))  

plt.plot(li)
plt.show()

1 个答案:

答案 0 :(得分:2)

这里有一些让你入门的东西。它直接来自matplotlib文档中的第二个示例 - 使用滑块更新绘图边界,而不是缩放数据。

import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
import numpy as np

fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.25)
t = np.arange(0.0, 1.0, 0.001)
s = np.sin(5*np.pi*t)
l, = plt.plot(t,s)

viewwindow = 0.1

axpos = plt.axes([0.25, 0.1, 0.65, 0.03])
axslider = Slider(axpos, '', t[0]+viewwindow, t[-1]-viewwindow, valinit=(t[-1]+t[0])/2.0)

def update(val):
    new_pos = axslider.val
    ax.set_xbound(new_pos-viewwindow, new_pos+viewwindow)
    fig.canvas.draw_idle()

update(axslider.val)
axslider.on_changed(update)

plt.show()