Использование значений первой строки матрицы в качестве тиков для matplotlib.pyplot.imshow - PullRequest
0 голосов
/ 31 января 2019

У меня есть файл, подобный этому:

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 голосов
/ 31 января 2019

Если я правильно понял, проблема здесь заключается в большом количестве отметок по оси 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

...