P
Python для начинающих
@pythonvideo1.2K подп.
128просмотров
10.3%от подписчиков
21 марта 2026 г.
Score: 141
Генерация диаграмм с pygraphviz: основы визуализации графов Иногда проще один раз увидеть, чем сто раз распечатать print(). Особенно когда дело касается связей: кто с кем соединен, в каком направлении идет поток данных, как устроена архитектура проекта. Для этого отлично подходит pygraphviz — оболочка над знаменитым Graphviz, позволяющая генерировать диаграммы прямо из Python. --- ### Установка pip install pygraphviz Важно: на некоторых системах сначала нужно установить сам Graphviz (через пакетный менеджер ОС). --- ### Простейший граф Создадим ориентированный граф и сохраним его как PNG: from pygraphviz import AGraph g = AGraph(directed=True) g.add_node("User") g.add_node("API") g.add_node("DB") g.add_edge("User", "API") g.add_edge("API", "DB") g.layout(prog="dot") # алгоритм раскладки g.draw("simple_graph.png") prog="dot" — классический и самый читаемый для иерархических структур (запросы сверху, база снизу). --- ### Стайлинг: делаем диаграмму понятной Граф без стиля — это просто клубок линий. Добавим цвета и формы, чтобы по диаграмме можно было ориентироваться за секунды: from pygraphviz import AGraph g = AGraph(directed=True, strict=True, rankdir="LR") # слева направо g.add_node("Client", shape="box", style="filled", fillcolor="#AED6F1") g.add_node("Service", shape="ellipse", style="filled", fillcolor="#A9DFBF") g.add_node("Cache", shape="diamond", style="filled", fillcolor="#F9E79F") g.add_edge("Client", "Service", label="HTTP") g.add_edge("Service", "Cache", label="GET") g.add_edge("Cache", "Service", label="HIT", color="green") g.add_edge("Service", "Client", label="Response", color="blue") g.graph_attr.update(label="Request Flow", fontsize="20") g.layout(prog="dot") g.draw("styled_graph.png") Ключевые идеи: - rankdir="LR" — направление слева направо (удобно для потоков). - shape, fillcolor, style — визуальное кодирование типов узлов. - label и color у ребер помогают понимать протоколы, типы взаимодействия и т.п. --- ### Быстрая визуализация структур из кода pygraphviz удобно использовать для генерации диаграмм по данным из программы: граф зависимостей модулей, цепочка этапов обработки данных, схема микросервисов. Достаточно обхода вашей структуры (словаря, списка связей, дерева) и вызова add_node / add_edge в цикле. --- pygraphviz хорош тем, что избавляет от ручного рисования схем в редакторах: диаграмма становится частью кода, обновляется автоматически и всегда соответствует реальности. Для начинающего питониста это отличный инструмент, чтобы увидеть свои структуры данных и архитектуру, а не только представлять их в голове.
128
просмотров
2615
символов
Нет
эмодзи
Нет
медиа

Другие посты @pythonvideo

Все посты канала →
Генерация диаграмм с pygraphviz: основы визуализации графов — @pythonvideo | PostSniper