使用python的pylab创建可滚动的多时隙

时间:2012-08-29 14:10:06

标签: python matplotlib

我有大量的情节,并希望使用python在同一个图中绘制它们。 我目前正在使用pylab进行绘图,但由于太多,他们被绘制在另一个之上。 有没有办法让图形可滚动,这样图表足够大并且仍然可以通过滚动条看到?

我可以使用PyQT,但是我可能缺少pylab图形对象的一个​​特性......

1 个答案:

答案 0 :(得分:6)

这符合你想要的精神,如果不是这封信。我想你想要一个数量为axes的窗口,然后能够滚动轴(但仍然只能一次看到一个),解决方案有一个单轴和一个滑块,选择要绘制的数据集。

import numpy
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
# fake data
xdata = numpy.random.rand(100,100) 
ydata = numpy.random.rand(100,100) 
# set up figure
fig = plt.figure()
ax = fig.add_subplot(111)
ax.autoscale(True)
plt.subplots_adjust(left=0.25, bottom=0.25)

# plot first data set
frame = 0
ln, = ax.plot(xdata[frame],ydata[frame])

# make the slider
axframe = plt.axes([0.25, 0.1, 0.65, 0.03])
sframe = Slider(axframe, 'Frame', 0, 99, valinit=0,valfmt='%d')

# call back function
def update(val):
    frame = numpy.floor(sframe.val)
    ln.set_xdata(xdata[frame])
    ln.set_ydata((frame+1)* ydata[frame])
    ax.set_title(frame)
    ax.relim()
    ax.autoscale_view()
    plt.draw()

# connect callback to slider   
sframe.on_changed(update)
plt.show()

这是根据此question中的代码改编的。您可以使用按钮小部件(doc)添加下一个/后退按钮。