Участок деформировал 2D-сетку с помощью Python

70
7

Я хочу построить деформированную прямоугольную сетку, что означает, что координаты узлов зависят от индексов node. Цель состоит в том, чтобы визуализировать деформацию единичного квадрата функцией.


Как я могу сделать это в python?

спросил(а) 2015-09-08T19:10:00+03:00 4 года, 2 месяца назад
1
Решение
82

Это тип вещи, для которого предназначен pcolormesh (или pcolor). (Также посмотрите на triplot и т.д. Для треугольных сеток.) ​​


import matplotlib.pyplot as plt

y, x = np.mgrid[:10, :10]
z = np.random.random(x.shape)

xdef, ydef = x**2, y**2 + x

fig, axes = plt.subplots(ncols=2)
axes[0].pcolormesh(x, y, z, cmap='gist_earth')
axes[1].pcolormesh(xdef, ydef, z, cmap='gist_earth')

axes[0].set(title='Original', xticks=[], yticks=[])
axes[1].set(title='Deformed', xticks=[], yticks=[])

plt.show()


введите описание изображения здесь

В примечании к стороне, pcolormesh по умолчанию не используется без сглаживания по соображениям производительности. Если вы добавите antiailiased=True в вызов pcolormesh, вы получите приятный результат:


введите описание изображения здесь

ответил(а) 2015-09-08T19:33:00+03:00 4 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема