Найти в Дзене
Мария Shy

Создание и рисование случайного графа Python

Всем добрый день! Сегодня я кратко расскажу как создать и нарисовать случайный неориентированный граф с помощью Networkx. Все выглядит примерно так: Строки 1-3: импортируем все необходимые зависимости. Строки 6-13: Создаем полный случайный граф. В функцию передаем 2 параметра - от них зависит размер графа. complete_graph(n) - это функция, создающая случайный полный граф на n вершинах. Здесь мы передаем в функцию случайное число от n до m. Функцией set_edge_attributes(G, name, value) мы для всех ребер графа создаем атрибут name и задаем ему значение value. Это вес ребер (для моей задачи нужен был знак, а не вес). В строках 10-11 мы проходимся в цикле по всем ребрам и задаем каждому из них случайный знак (1 или -1). Далее вызываем функцию отрисовки графа. Строки 16-24: В строке 17 мы создаем список с весами(знаками всех ребер). Строка 19 - позиционирование узлов. Существует несколько вариантов позиционирования, подробнее об этом можно почитать в официальной документации тут. Строки

Всем добрый день!

Сегодня я кратко расскажу как создать и нарисовать случайный неориентированный граф с помощью Networkx.

Все выглядит примерно так:

Код создания и отрисовки графа
Код создания и отрисовки графа

Строки 1-3:

импортируем все необходимые зависимости.

Строки 6-13:

Создаем полный случайный граф.

В функцию передаем 2 параметра - от них зависит размер графа. complete_graph(n) - это функция, создающая случайный полный граф на n вершинах. Здесь мы передаем в функцию случайное число от n до m.

Функцией set_edge_attributes(G, name, value) мы для всех ребер графа создаем атрибут name и задаем ему значение value. Это вес ребер (для моей задачи нужен был знак, а не вес).

В строках 10-11 мы проходимся в цикле по всем ребрам и задаем каждому из них случайный знак (1 или -1).

Далее вызываем функцию отрисовки графа.

Строки 16-24:

В строке 17 мы создаем список с весами(знаками всех ребер).

Строка 19 - позиционирование узлов. Существует несколько вариантов позиционирования, подробнее об этом можно почитать в официальной документации тут.

Строки 21-24. Тут все просто - рисуем узлы, ребра, номера узлов и веса ребер.

Остальные строки, думаю, в комментариях не нуждаются.

И вот готовый результат:

Пример графа
Пример графа
Спасибо, что дочитали!
Подписывайтесь на канал, чтобы не пропустить ничего интересного

#Python #программирование на python #python с нуля #графы #drawing #программирование #программирование для начинающих