我在matplotlib中遇到了以下问题(使用python 3.x)。我想使用一个框架不断变化的qudmesh。如果框架具有相同的初始大小,那就可以了。问题是我的框架会改变大小,我在更新此信息时遇到了问题。
下面的代码片段是一个小的模拟,以显示我的问题是如何来的。当帧2来,我想更新数据,使该图更新所有的大小。
我得到以下错误. TypeError: Dimensions of A (4, 4) are incompatible with X (4) and/or Y (4)
我觉得我没有在这里更新正确的变量,变量array
正确更新(我在帧大小相同的情况下尝试过)。问题是向量x和y。有什么想法如何解决这个问题?
谢谢
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import QuadMesh
from random import random
frame1 = np.array([[1,2,3], [4,5,6], [7,8,9]])
frame2 = np.array([[1,2,3, 9], [4,5,6, 9], [7,8,9, 9], [10,11,12,13]])
x = np.array([[1,2,3]])*random()
y = np.array([[1],[2],[3]])*random()
x2 = np.array([[1,2,3, 4]])*random()
y2 = np.array([[1],[2],[3], [4]])*random()
index = 0
with plt.style.context("classic"):
plt.ion()
fig, ax = plt.subplots()
m: QuadMesh = ax.pcolormesh(x, y, frame1, shading='nearest')
fig.colorbar(m)
while True:
frame = frame1 if index <= 25 else frame2
if index <=25:
m.update({'array': frame})
else:
m.update({'array': frame, 'axes': [x2, y2]})
print(index)
index += 1
plt.show()
字符串
1条答案
按热度按时间wfveoks01#
这段代码现在将在帧改变大小时更新x和y数组,错误将被修复。
字符串
我希望这段代码能正常工作……