使用矩阵第一行的值作为matplotlib.pyplot.imshow的刻度

时间:2019-01-31 16:33:05

标签: python python-3.x numpy matplotlib imshow

我有一个像这样的文件:

820.5   815.3   810.4
2061    2082    2098
2094    2119    2071
2067    2079    2080
2095    2080    2116
2069    2103    2108

我正在使用以下代码将其打开并绘制数据

import numpy as np
import matplotlib.pyplot as plt

img = np.loadtxt('example.txt')
wvl = img[0,:]
data = img[1:,:]

plt.imshow(data)

问题是:如何使用numpy.ndarray“ wvl”内的值作为我的热图的x轴刻度标签?

我已经尝试过使用plt.xticks(range(wvl.size),wvl),但是在实际情况下,我的数组长度为512,这导致无法读取的结果。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,那么这里的问题就是大量的x轴刻度。在这种情况下,要获得可读的解决方案,一种方法是在第n步的每一步都打勾。您还可以根据个人喜好选择是否旋转它们。为此,您可以喜欢以下内容。

我只是将您的数据集扩展了四次以拥有模式数据点。

import numpy as np
import matplotlib.pyplot as plt

img = np.loadtxt('example.txt')

wvl = img[0,:]
data = img[1:,:]
ax.imshow(data)

step = 3
plt.xticks(range(0, wvl.size, step),wvl[::step], rotation=45);

enter image description here