我有一个numpy数组,比如:Y[:,0]是表示x轴坐标的列表。对于这个轴上的每个点,由索引indx标记,有Y[indx,1][0]是y轴坐标的列表,Y[indx,1][1]是z轴数据的列表我现在可以使用下面的代码绘制3D中的线阵列。然而,我想绘制一个2D图,其中z数据表示x和y坐标上的颜色图(看起来像小波变换图的输出)。
#dummy data
Y=[0]*10
for i in range(10):
temp=np.array([[indx,np.cos(indx)] for indx in range(50)])
Y[i]=np.array([i,temp.transpose()])
Y=np.array(Y,dtype=object)
#plotting in 3D
ax = plt.figure().add_subplot(projection='3d')
for indx in range(len(Y[:,0])):
ax.plot(Y[indx,1][0], Y[indx,1][1], zs=Y[:,0][indx], zdir='x')
这给了我3D图。我怎样才能得到我所描述的2D图?
1条答案
按热度按时间gkn4icbw1#
对于每个x坐标,y坐标是否都相同,例如:
Y[0,1][0] = Y[1,1][0]
?另外,y坐标是否均匀分布?下面的解决方案假设这两个都是真的。解决方案
创建与每个
(x,y)
位置关联的z值数组。然后使用新数组作为参数调用plt.imshow(...)
。你甚至可以添加一个颜色栏!注意:使用虚拟数据时,颜色Map表没有什么令人印象深刻的,但它适当地显示了您要求的图。
代码