Подтвердить что ты не робот

Цветной график 2D-матрицы matplotlib

Итак, я думал, что это будет очень просто, но у меня было много сложного поиска именно того, что я ищу на понятном примере.

В принципе, я хочу сделать фазовые диаграммы, поэтому, полагая, что у меня есть 2d-массив, как я могу получить matplotlib, чтобы преобразовать это в сюжет, который я могу прикрепить к названиям, осям и легендам (цветным полосам).

Я ищу чрезвычайно простое решение для голой кости, которое использует только то, что требуется для работы с любым 2D-массивом.

Я уверен, что это просто, и я просто как-то толк, но у меня действительно много проблем с этим.

Я использовал инструменты с примерами, но они не очень хорошо подходят для того, что я пытаюсь сделать: мне нравится общий внешний вид этого графика, я просто хотел бы пройти через 2dArray и имеют тот же результат:

import numpy as np
import matplotlib as ml
import matplotlib.pyplot as plt

H = [[1,2,3,4][5,6,7,8][9,10,11,12][13,14,15,16]]

fig = plt.figure(figsize=(6, 3.2))

ax = fig.add_subplot(111)
ax.set_title('colorMap')
X,Y = np.meshgrid(xedges, yedges)
plt.pcolormesh(X, Y, H)
ax.set_aspect('equal')

cax = fig.add_axes([0.12, 0.1, 0.78, 0.8])
cax.get_xaxis().set_visible(False)
cax.get_yaxis().set_visible(False)
cax.patch.set_alpha(0)
cax.set_frame_on(False)
plt.colorbar(orientation='vertical')
plt.show()
4b9b3361

Ответ 1

Я боюсь, что ваш опубликованный пример не работает, поскольку X и Y не определены. Поэтому вместо pcolormesh используйте imshow:

import numpy as np
import matplotlib.pyplot as plt

H = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])  # added some commas and array creation code

fig = plt.figure(figsize=(6, 3.2))

ax = fig.add_subplot(111)
ax.set_title('colorMap')
plt.imshow(H)
ax.set_aspect('equal')

cax = fig.add_axes([0.12, 0.1, 0.78, 0.8])
cax.get_xaxis().set_visible(False)
cax.get_yaxis().set_visible(False)
cax.patch.set_alpha(0)
cax.set_frame_on(False)
plt.colorbar(orientation='vertical')
plt.show()

Ответ 2

Вот самый простой пример, в котором есть ключевые строки кода:

import numpy as np 
import matplotlib.pyplot as plt

H = np.array([[1, 2, 3, 4],
          [5, 6, 7, 8],
          [9, 10, 11, 12],
          [13, 14, 15, 16]])

plt.imshow(H)
plt.show()

enter image description here