Радиальное дерево (Polar Tree) - Лена Капаца
Радиальное дерево (Polar Tree) by Лена Капаца July 1, 2024 Основы

Полярное дерево (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()




Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

© Лена Капаца. Все права защищены.