Полярное дерево (Polar Tree) — это способ визуализации данных в полярных координатах, часто используемый для представления иерархических структур, таких как деревья. В отличие от обычных декартовых координат, в полярных координатах используется радиус и угол, что позволяет создавать более компактные и интересные визуализации.
В этой статье мы рассмотрим, как создать полярное дерево с использованием языка программирования Python и библиотеки Matplotlib.
Ниже представлен пример кода, который создаёт простое полярное дерево. В этом примере мы используем рекурсивную функцию для рисования ветвей дерева.
import matplotlib.pyplot as plt
import numpy as np
def draw_polar_tree(ax, depth, length, angle, position):
if depth == 0:
return
# Вычисляем новое положение
new_position = (
position[0] + length * np.cos(angle),
position[1] + length * np.sin(angle)
)
# Рисуем ветвь
ax.plot([position[0], new_position[0]], [position[1], new_position[1]], color="green")
# Рекурсивно рисуем две новые ветви
draw_polar_tree(ax, depth - 1, length * 0.7, angle + np.pi/6, new_position)
draw_polar_tree(ax, depth - 1, length * 0.7, angle - np.pi/6, new_position)
def main():
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.set_theta_zero_location('N')
ax.set_yticklabels([])
# Начальные параметры дерева
initial_depth = 5
initial_length = 1
initial_angle = np.pi / 2
initial_position = (0, 0)
draw_polar_tree(ax, initial_depth, initial_length, initial_angle, initial_position)
plt.show()
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
© Лена Капаца. Все права защищены.