5

我有大量的图,并希望使用 python 在同一个图中绘制它们。我目前正在使用 pylab 进行绘图,但是由于太多,它们被绘制在另一个之上。有没有办法使图形可滚动,使图形足够大并且使用滚动条仍然可见?

我可以为此使用 PyQT,但我可能缺少 pylab 的图形对象的一个​​功能......

4

1 回答 1

7

这符合你想要的精神,如果不是字母的话。我认为您想要一个带有多个轴的窗口,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 = int(round(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()

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

于 2012-09-02T16:16:01.957 回答