Поля, контуры и векторные поля
Когда величина зависит от двух координат, её рисуют цветом, изолиниями или стрелками.
Скалярное поле $f(x, y)$ показывают цветом (heatmap) или контурными линиями (изолинии — линии равного значения). Векторное поле (величина и направление в каждой точке) рисуют стрелками (quiver) или линиями тока (streamlines).
Скалярные поля: цвет или контуры
Поле — это функция двух координат: температура на карте, высота рельефа, давление, потенциал. Два способа показать. Цветовое поле (heatmap/pcolormesh) красит каждую точку по значению — даёт общую картину, но точные значения по цвету не прочитать. Контурные линии соединяют точки равного значения (как горизонтали на топокарте) — позволяют прочитать точное значение по подписанной изолинии и увидеть градиент по густоте линий: где линии гуще, там поле меняется круче.
Часто их совмещают: цветная заливка для общей картины плюс несколько подписанных контуров для точности. Это стандарт в метеорологии и физике.
Контурная карта «холма» f=высота: ___10___ / \ густые линии = крутой склон | __20__ | редкие линии = пологий | / 30 \ | || (40) || <- вершина | \______/ | \__________/ изолинии = линии равной высоты
Считаем поле и его градиент
Возьмём поле $f(x,y) = x^2 + y^2$ (параболоид) и посчитаем значения и приближённый градиент (направление и скорость роста) — основу для контуров и стрелок.
def f(x, y):
return x*x + y*y
# значения на сетке 3x3
print("поле f = x^2 + y^2:")
for y in (-1, 0, 1):
row = [f(x, y) for x in (-1, 0, 1)]
print(" y=%2d:" % y, row)
# численный градиент в точке (1,1): (df/dx, df/dy)
h = 1e-5
x0, y0 = 1.0, 1.0
gx = (f(x0+h, y0) - f(x0-h, y0)) / (2*h)
gy = (f(x0, y0+h) - f(x0, y0-h)) / (2*h)
mag = (gx*gx + gy*gy) ** 0.5
print("градиент в (1,1):", (round(gx,2), round(gy,2)), "длина", round(mag,2))Вывод:
поле f = x^2 + y^2: y=-1: [2, 1, 2] y= 0: [1, 0, 1] y= 1: [2, 1, 2] градиент в (1,1): (2.0, 2.0) длина 2.83
Минимум поля в центре (0), значения растут к краям — изолинии будут концентрическими окружностями. Градиент в (1,1) направлен «наружу» (2, 2) — стрелка векторного поля смотрела бы от центра, и её длина 2,83 кодирует крутизну.
Векторные поля
Если в каждой точке задан вектор (скорость течения, электрическое поле, градиент), его рисуют стрелкой: направление = ориентация, величина = длина или цвет. Сетка стрелок — это quiver plot. Когда стрелок слишком много, их заменяют линиями тока (streamlines) — кривыми, касательными к полю, которые показывают, куда «потечёт» частица. Это прямая связь с физикой: линии тока жидкости, силовые линии поля.
Как работает под капотом
Контурные линии строятся алгоритмом marching squares: сетку обходят по клеткам и в каждой ищут, где функция пересекает заданный уровень, соединяя точки в линии. Густота изолиний обратно пропорциональна величине градиента: $\Delta f$ между соседними контурами постоянна, поэтому где поле круче (большой градиент), линии расположены ближе. Векторное поле и градиент скалярного поля связаны: градиент всегда перпендикулярен изолиниям и направлен в сторону роста.
Связь с физикой полей
Визуализация полей — это прямой язык физики. Скалярное поле и его градиент описывают потенциал и силу: линии равного потенциала (эквипотенциали) — это в точности контурные линии, а силовое поле перпендикулярно им и направлено в сторону убывания потенциала. Поэтому, глядя на контурную карту электрического или гравитационного потенциала, физик сразу «видит» силы: где изолинии гуще, там поле сильнее. Векторные диаграммы и линии тока показывают течения жидкости, магнитные силовые линии, поток тепла — всё, что имеет направление и величину в каждой точке.
Эта двойственность — «поле как цвет/контуры» и «поле как стрелки/линии тока» — отражает два взгляда на одну математику. Контуры удобны для скалярных величин (температура, давление, высота, потенциал), стрелки и streamlines — для векторных (скорость, поле). Часто их совмещают: цветом рисуют величину скорости, а линиями тока — её направление, получая полную картину течения на одном графике. Понимание этой связи делает чтение научных фигур в физике, метеорологии и гидродинамике почти интуитивным.
Частые ошибки
- Только цвет без контуров, когда нужны точные значения — добавьте подписанные изолинии.
- Радужная палитра на поле — ложные границы (см. урок про viridis).
- Слишком частые стрелки — каша; прорежьте сетку или используйте streamlines.
- Стрелки разной длины без шкалы — непонятно, что означает длина.
Итог
- Скалярное поле: цвет (общая картина) + контуры (точные значения, градиент по густоте).
- Векторное поле: стрелки (quiver) или линии тока (streamlines).
- Градиент перпендикулярен изолиниям; густые линии = крутой склон.
- Это прямой мост к физике: потенциалы, течения, силовые линии.