我有一些矢量场在2d空间和时间上变化。传统上,人们可以将矢量场的演变视为2D电影,其中所有箭的大小和角度都会随时间变化。
显而易见,目前我的U和V各有形状(x,y,t),其中dims 0和1是空间坐标,t是特定时间片。我可以将矢量字段可视化为特定时间:matplotlib.pyplot.quiver(U[:,:,i], V[:,:,i])
其中i
是特定时间索引。目前,我可以在for循环中迭代所有i
来显示这种演变。
但是,我想在一个二维图上及时显示每个箭袋图。为此,我想将每个索引i
指定为与给定色彩映射不同的颜色。因此,来自特定时间点的所有箭数都显示为单一颜色。
有人可以建议一种方法吗?
提前谢谢!
答案 0 :(得分:6)
您可以采取以下措施:
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
U = np.random.rand(10, 10, 10) - 0.5
V = np.random.rand(10, 10, 10) - 0.5
cmap = plt.cm.jet
time_samples = U.shape[-1]
for t in xrange(time_samples):
plt.quiver(U[..., t], V[..., t], color=cmap(j/time_samples))
plt.show()