#python #numpy #matplotlib #contourf
#python #numpy #matplotlib #контур
Вопрос:
Я пытаюсь отобразить раздел геофизики с помощью контурной карты в matplotlib. Я почти получаю желаемый результат, за одним исключением, он отображается из нижнего левого угла. Визуализированный раздел геофизики
Поскольку это сечение от поверхности, то 0 — это уровень поверхности, а 2000 — глубина в наносекундах. Это означает, что эта контурная карта должна отображаться из верхнего левого угла.
CS = plt.contourf(x, y, amplitude, 25, cmap='jet', vmin=0, vmax=127)
Я думаю, что я понимаю проблему. Мои данные считываются из двоичного файла, где каждый снимок представляет собой список значений от поверхностного до самого глубокого значения в каждой заданной точке. Итак, мой 2D-массив похож:
1st shot [[65, 29, 56, 98, 82, 14,...],
2nd shot [24, 54, 48, 41, 74, 37,...],
3rd shot [34, 12, 18, 44, 87, 64,...]]
N shot....
Есть ли способ изменить его, как:
[[65, 24, 34],
[29, 54, 12],
[56, 48, 18],
[98, 41, 44],
[82, 74, 87],
[14, 37, 64]]
Таким образом, если y инвертирует значения y (чтобы быть отрицательными), я мог бы получить желаемый результат — 0 в верхнем левом углу.
Я знаю, как это сделать на простом python, но есть ли эффективный способ в numpy?
Ответ №1:
Если данные D представляют собой массив numpy 2D,
D = D.T
этого можно добиться простым переносом.