Tôi đang cố gắng sử dụng matplotlib.ArtistAnimation
để tạo hoạt ảnh cho hai vị trí con. Tôi muốn trục x tăng giá trị khi hoạt ảnh diễn ra, sao cho tổng chiều dài của hoạt ảnh là 100 nhưng bất kỳ lúc nào subplot chỉ hiển thị cho tôi giá trị thời gian từ 0-24 và sau đó lặp lại lên tới 100.Cập nhật giá trị trục x bằng cách sử dụng hoạt ảnh matplotlib
Một ví dụ tuyệt vời được đưa ra here. Liên kết sử dụng FuncAnimation
và cập nhật các nhãn trục x theo kiểu cuộn bằng cách sử dụng plot().axes.set_xlim()
và tăng giá trị x. Mã này có sẵn thông qua liên kết bên dưới video YouTube trong liên kết được cung cấp.
Tôi có mã được thêm vào bên dưới cho thấy các nỗ lực của tôi để nhân rộng các kết quả này nhưng giới hạn x dường như có giá trị cuối cùng thay vì tăng dần theo thời gian. Tôi cũng đã cố gắng tăng các giải pháp (như trái ngược với trục) bằng cách chỉ vẽ các giá trị trong cửa sổ sẽ được nhìn thấy trong subplot, nhưng điều đó không tăng giá trị trục x. Tôi cũng đã cố gắng thực hiện tự động tính toán nhưng trục x vẫn không cập nhật.
Tôi cũng tìm thấy this question hầu như là cùng một vấn đề, nhưng câu hỏi chưa bao giờ được trả lời.
Đây là mã của tôi:
import matplotlib.pylab as plt
import matplotlib.animation as anim
import numpy as np
#create image with format (time,x,y)
image = np.random.rand(100,10,10)
#setup figure
fig = plt.figure()
ax1=fig.add_subplot(1,2,1)
ax2=fig.add_subplot(1,2,2)
#set up viewing window (in this case the 25 most recent values)
repeat_length = (np.shape(image)[0]+1)/4
ax2.set_xlim([0,repeat_length])
#ax2.autoscale_view()
ax2.set_ylim([np.amin(image[:,5,5]),np.amax(image[:,5,5])])
#set up list of images for animation
ims=[]
for time in xrange(np.shape(image)[0]):
im = ax1.imshow(image[time,:,:])
im2, = ax2.plot(image[0:time,5,5],color=(0,0,1))
if time>repeat_length:
lim = ax2.set_xlim(time-repeat_length,time)
ims.append([im, im2])
#run animation
ani = anim.ArtistAnimation(fig,ims, interval=50,blit=False)
plt.show()
Tôi chỉ muốn âm mưu phụ thứ hai (ax2
) để cập nhật các giá trị trục x.
Mọi trợ giúp sẽ được đánh giá cao.
http://stackoverflow.com/questions/17558096/animated-title-in-matplotlib/17562747#17562747 <- để nhận thông báo cập nhật nhãn – tacaswell
http://stackoverflow.com/questions/17888593/display-sequence -of-images-using-matplotlib – tacaswell
hoạt ảnh sẽ không chạy khi tôi sử dụng blit, chưa chắc chắn tại sao – abradd