audio - matplotlib Y 和X 轴被交换

  显示原文与译文双语对照的内容

我在尝试 plot 谱图。 我在matplotlib中使用 imshow

问题是,我从 C++ ( 它实际上创建一个 2D 向量并将它的存储到文本文件中) 中生成的文本文件读取数据,然后在文本文件和 plot 中读取。

下面是我生成( 从 C++ 导入并导入到 python )的plot的输出:

enter image description here

这里是图元图的plot,实际上在 python ( 使用 matplotlib ) 中:

enter image description here

正如你所看到的,x 和y 轴被交换,它给了我对实际谱图的错误形状。

为什么这会是一个例子例如,我可以在第一个地方读取错误的数据。 或者,我是不是在设置x 轴本身?

任何帮助都会非常感激

编辑:

我使用这里函数读取了 array:


def split_at_empty_lines(filename):

with open(filename) as f:
 arr = [] 
 for line in f:
 if not line.strip() and arr:
 yield arr 
 arr = []
 elif line.strip(): arr.extend(float(x) for x in line.split())
 if arr: yield arr;

通过执行以下操作生成图元图:


a = list(split_at_empty_lines("file.txt"); 

hm = ax.imshow(a, interpolation='nearest',origin='lower',aspect='auto')

以下是结果:


[[ 26.9287 30.9089 34.9285.. ., 23.016 28.9027 36.4073]
 [ 26.7964 26.8524 32.7296.. ., 22.9524 28.6145 33.7204]
 [ 26.4222 27.0941 29.094. . ., 22.5309 27.6803 26.7073]
..., 
[ 25.9362 25.8307 29.7039.. ., 22.0084 25.9855 28.9602]
[ 26.4222 27.0941 29.094. . ., 22.5309 27.6803 26.7073]
[ 26.7964 26.8524 32.7296.. ., 22.9524 28.6145 33.7204]]

以下是结果:

enter image description here

我不清楚为什么我得到这样的结果。

时间: 作者:

如果你正在读取带有 numpy的数据,你可以在打印之前将 array 转换为 ndarray


import numpy as np
a = np.array(split_at_empty_lines("file.txt"))
print(a.T)

应该产生


array([[1, 4],
 [2, 5],
 [3, 6]])

作者:
...