如何沿着图中的第三维绘制矩阵的多行?

时间:2019-06-12 05:44:49

标签: python numpy matplotlib keras

我有一个尺寸为(3,25000)的矩阵,其中每一行都是尺寸为(1,25000)的语音信号。我想在3D图中沿着第三个维度绘制thee矩阵的行,类似于此-

![1] https://ieeexplore.ieee.org/mediastore_new/IEEE/content/media/6221036/8642545/8249740/deb3-2787717-large.gif

请帮助

1 个答案:

答案 0 :(得分:0)

您可以使用mplot3d。

将第一行视为表示“心情”的分类轴(如您的链接中所示),将第二行视为y轴,将第三行视为z轴。

注意:从您的问题尚不清楚类别如何与您的numpy数组相关联。但是,您不能在matplotlib中使用情绪的第一行的字符数组来绘制数据,因此必须检索这些类别的索引。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x,_=pd.factorize(<list of categories aligned with numpy array>[0]) #retrieving indices at categories
y=<your_array>[1]
z=<your_array>[2]
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(x, y, z)
.
.
.

最后,您可以将x轴标签设置为:

ax.axes.set_xticks(x)
ax.axes.set_xticklabels(<insert list of your labels>)