我有大量的情节,并希望使用python在同一个图中绘制它们。 我目前正在使用pylab进行绘图,但由于太多,他们被绘制在另一个之上。 有没有办法让图形可滚动,这样图表足够大并且仍然可以通过滚动条看到?
我可以使用PyQT,但是我可能缺少pylab图形对象的一个特性......
答案 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()