Использование pcolormesh с 3 одномерными массивами в Python - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь использовать pcolormesh для построения 3 одномерных массивов, заполненных координатами и значениями.Массивы ниже являются просто примерами, но они следуют тому же принципу.У меня есть 3 массива, один для координаты x, один для координаты y и один для их значения (или z).Каждый индекс соответствует местоположению.Индекс 0 соответствует x из 1, y из 1 и z из 6. Это продолжается для всех индексов.

x = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
y = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
z = [6,2,3,5,8,2,3,2,4,2,3,6,7,3,3,2]
plt.figure()
plt.pcolor(x,y,z)
plt.colorbar()
plt.show()

Я также пытался ...

x = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
y = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
z = [6,2,3,5,8,2,3,2,4,2,3,6,7,3,3,2]
N = np.sqrt(len(x))
N = int(N)
np.reshape(x,(N,N))
np.reshape(y,(N,N))
np.reshape(z,(N,N))
plt.pcolormesh(x,y,c=z)
plt.show()

Кажется, ничего не работает.Отправить справку

1 Ответ

0 голосов
/ 09 октября 2018

Ваша вторая попытка была в правильном направлении - за исключением двух вещей:

  • np.reshape возвращает измененный массив, он не применяется кпараметр массива.
  • если вы хотите указать третий кварг по имени - это заглавная буква C, а не нижний регистр c

Такэто работает:

x = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
y = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
z = [6,2,3,5,8,2,3,2,4,2,3,6,7,3,3,2]
x = np.reshape(x,(4, 4))
y = np.reshape(y,(4, 4))
z = np.reshape(z,(4, 4))
plt.pcolormesh(x, y, z)

Однако, чище читать, возможно, было бы вот так:

x, y = np.meshgrid(range(4), range(4))
z = [6, 2, 3, 5, 8, 2, 3, 2, 4, 2, 3, 6, 7, 3, 3, 2]
z = np.reshape(z, (4, 4))
plt.pcolormesh(x, y, z)

Это тот случай использования, для которого был создан meshgrid.

...