首页 > 解决方案 > 如何在图中沿第三维绘制矩阵的多行?

问题描述

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

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

请帮忙

标签: pythonnumpymatplotlibkeras

解决方案


您可以使用 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>)

推荐阅读