【问题标题】:How to plot multiple rows of a matrix along third dimension in a plot?如何在图中沿第三维绘制矩阵的多行?
【发布时间】:2019-10-26 13:31:58
【问题描述】:

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

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

请帮忙

【问题讨论】:

    标签: python numpy matplotlib keras


    【解决方案1】:

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

    【讨论】:

    • numpy 数组的行是属于不同情感类别的语音波形,我想沿着第三个轴绘制,如图所示。 x 轴表示时间,y 轴表示幅度,z 轴表示存储为矩阵行的不同情绪。
    • 要在 Python 中以 3D 形式绘制,如链接所示,切换:x 轴为情绪,y 轴为时间,z 轴为幅度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2014-06-12
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    相关资源
    最近更新 更多