Как указать оси для pcolormesh? - PullRequest
1 голос
/ 12 апреля 2019

Итак, я пытаюсь построить сетку (125 x 1000) с указанными значениями. Я использую matplotlib с pcolormesh. Вот так выглядит мой код, массив ферментов просто символический.

enzyme = np.array([125 x 1000])

plt.pcolormesh(enzyme, cmap='Reds')
plt.colorbar()
plt.show()

Ось X - это мое пространственное разрешение, а моя ось Y - время. Моя ось X просто работает от 0 до 125, а ось Y - от 0 до 1000. Но моя настоящая проблема в часах, поэтому я хочу, чтобы ось Y показала как 0 часов -> 24 часа на шаг 2 часа. Нечто подобное для оси х. Таким образом, индекс сетки не является правильным масштабом и числом для моего графика. Как это исправить.

Я уже пробовал, включая

pcolormesh(x, y, enzyme)

с x и y массивом 1D, но они должны соответствовать длине моей ферментной сетки, и у меня слишком много точек данных, чтобы поместить их на оси x и y.

1 Ответ

0 голосов
/ 12 апреля 2019

Я бы предложил создать новый массив x и y, который соответствует размеру вашего ферментного массива.Каждому значению x и y вы назначаете время, соответствующее каждому из ваших индексов.Например, если ваша ось 0-1000 по оси y должна представлять 24 часа, вы можете сделать что-то вроде этого:

increase=24/1000.
yvals=np.arange(0,24,increase)

Деление 24/1000 даст вам приращение, необходимое для того, чтобы у вас было 1000 значенийначиная с 0,24 часа.

Затем вы можете изменить приращение xtick следующим образом:

ax.set_xticks(np.arange(0,24,2))
...