Участок деформировал 2D-сетку с помощью Python
Я хочу построить деформированную прямоугольную сетку, что означает, что координаты узлов зависят от индексов node. Цель состоит в том, чтобы визуализировать деформацию единичного квадрата функцией.
Как я могу сделать это в python?
Это тип вещи, для которого предназначен 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
, вы получите приятный результат:
- Вопросы
- Matplotlib
- Участок деформировал 2D-сетку с помощью Python