Получить изображение из 3 одномерных numpy массивов в Python - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть три 1D numpy массива одинакового размера N, скажем, x, y и z. Массивы x и y обозначают координаты Картеса, а массив z - значения в указанных координатах c.

Я хотел бы получить изображение, где цвет / интенсивность в точке (x, y) задается значением в массиве z.

Для этого я рассмотрел imshow, который создает изображения из 2D-массивов. Чтобы использовать imshow, мне нужно преобразовать мой массив z в двумерный массив. Я обнаружил, что meshgrid может преобразовать мои 1D x и y массивы в 2D с помощью команды:

X, Y = np.meshgrid(x,y).

Однако я не смог найти, как преобразовать мой z 1D массив в 2D массив, который соответствует Картезианские координаты сверху.

То, что я ищу, в основном показано в этом примере

>>> import matplotlib.pyplot as plt
>>> x = np.arange(-5, 5, 0.1)
>>> y = np.arange(-5, 5, 0.1)
>>> xx, yy = np.meshgrid(x, y, sparse=True)
>>> z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
>>> h = plt.contourf(x,y,z)
>>> plt.show()

Но в моем случае задан массив z, который представляет примеры функции z = f (x, y ).

Вот пример того, что у меня есть. Это из CSV-файла со следующим:

x, y, z
-10,4,30
-4,3,20
10,10,12
-11.5,3,-33.2
-5,0,23
-4,-2,8
0,2,1
5,12,42
11.2,5,23
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...