Тики подфигур матшоу из нарезанного массиваPython

Программы на Python
Anonymous
Тики подфигур матшоу из нарезанного массива

Сообщение Anonymous »

Мой массив numpy имеет форму (500,6). Поскольку он очень высокий, я рисую его фрагменты с помощью matplotlib matshow.
Это мой код:

Код: Выделить всё

fig, (ax1, ax2, ax3, ax4, ax5) = plt.subplots(1, 5, figsize=(6,12), layout='constrained', sharex=True)

min = q_func.min()
max = q_func.max()

plt.rcParams.update({"text.usetex": True,"font.family": "Computer Modern Serif"})
ax1.matshow(q_func[0:99,:], vmin=min, vmax=max, aspect='equal', cmap='viridis')
ax2.matshow(q_func[100:199,:], vmin=min, vmax=max, aspect='equal', cmap='viridis')
ax3.matshow(q_func[200:299,:], vmin=min, vmax=max, aspect='equal', cmap='viridis')
ax4.matshow(q_func[300:399,:], vmin=min, vmax=max, aspect='equal', cmap='viridis')
im = ax5.matshow(q_func[400:499,:], vmin=min, vmax=max, aspect='equal', cmap='viridis')

fig.supxlabel("Acciones")
fig.supylabel("Estados")
fig.suptitle("$Q$-función aproximada con 2000 episodios")
fig.colorbar(im)
Какие выходные данные:
Изображение

Но я хочу, чтобы y-тики второй подфигуры соответствовали меткам разрезанного массива, поэтому они начинаются с начала координат как 100, 120, ...
То же самое для остальные субфигуры: 200, 220, ...; 300, 320,...; 400, 420, ...
Значит, это должно выглядеть так:
Изображение

Но мне пока не повезло. Если кто-то знает, как этого добиться, буду благодарен.
Я пробовал ax.set_yticks, ax.set_yticklabels. Но мне пока не повезло. Если кто-то знает, как этого добиться, буду благодарен.

Редактировать:
Я пробовал добавить

Код: Выделить всё

ax2.set_yticks(ax2.get_yticks())
ax2.set_yticklabels(["","",100,120,140,160,180])
что делает это
и

Код: Выделить всё

ax2.set_yticks([i for i in range(100,200)])
дает это

Подробнее здесь: https://stackoverflow.com/questions/784 ... iced-array

Вернуться в «Python»