Tôi có lưới NxN với một số giá trị, thay đổi từng bước thời gian. Tôi đã tìm thấy một cách để vẽ một cấu hình lưới duy nhất của điều này với chức năng matshow
, nhưng tôi không biết làm cách nào để cập nhật trạng thái với mọi bước thời gian. Dưới đây là một ví dụ đơn giản:
Animate thay đổi lưới bậc hai (matshow)
from pylab import *
from matplotlib import pyplot
a = arange(25)
a = a.reshape(5,5)
b = 10*rand(5,5)
matshow(a-b, cmap = cm.jet)
colorbar()
show()
Mã này tạo ra hình ảnh sau đây:
Bây giờ tưởng tượng rằng các bước thời gian tới một số giá trị thay đổi, vì vậy nên bức tranh này. Đây là logic tôi đã lưu ý:
from pylab import *
from matplotlib import pyplot
a = arange(25)
a = a.reshape(5,5)
time=10
for t in range(time):
b = 10*rand(5,5)
print b
matshow(a-b, cmap=cm.jet)
colorbar()
show()
Điều này tạo ra 10 ảnh. Tôi muốn tạo hiệu ứng này thay vì tạo ra các bức ảnh riêng lẻ, và ví dụ tôi muốn chọn một bước thời gian giữa các thay đổi (tức là, tốc độ khung hình).
Ngoài ra, tôi mở để gợi ý cho một chức năng khác nhau, nếu matshow
không phải là cách để đi, nhưng hãy giữ nó đơn giản, tôi là tương đối thiếu kinh nghiệm.
Cảm ơn bạn, đó là những gì tôi đang tìm kiếm. – enedene
Tôi nên hỏi điều này trong câu hỏi, nhưng có cách nào để đặt điều kiện trên a-b sao cho hoạt ảnh ngừng hoạt động và chỉ còn lại hình cuối cùng (như thể tôi đã vẽ sơ đồ tĩnh). Ví dụ: nếu max (a-b)> 22? – enedene
@bmu Tôi đã tự do thêm một vài khung hình "phim" của bạn dưới dạng hình động gif - câu trả lời tuyệt vời! Nhìn vào hình ảnh động, tôi sẽ gợi ý rằng colorbar có giới hạn cố định nên nó không thay đổi trong suốt quá trình hoạt ảnh. – Hooked