Как использовать networx для получения распределения вероятностей из графика

#python #plot #networkx

Вопрос:

Мне нужно построить график наибольших связанных компонентов графика G5 на основе распределения вероятностей одного и того же графика с помощью networkx библиотеки. Мне удалось использовать networkx.largest_connected_components(Graph) функцию, чтобы получить список крупнейших подключенных компонентов одного и того же. Теперь мне нужно получить доступ к распределению вероятностей одного и того же графика и построить его на основе самых больших связанных компонентов, чтобы я мог проанализировать влияние увеличения вероятности на самые большие связанные компоненты, ниже приведен мой файл python…

 import matplotlib.pyplot as plt import networkx as nx import random random.seed() n = random.randint(0, 1000) s = random.randint(1,20) prob = 0.5 G5 = nx.gnp_random_graph(n,prob,s, False) ##get the largest connected components using nx largest=max(nx.largest_connected_components(G5),key=len) ##get the probability distribution ##i need help with using networkx to get the probability distribution ##of the graph G5 so i can plot with matplotlib plt.xlabel('Probablity') plt.ylabel('Largest Connected Component') plt.show()  

Комментарии:

1. В вашем коде, откуда берется G5? И каково ваше определение «распределения вероятностей по графику»?

2. @Лагербер, код был обновлен в соответствии с вашими требованиями

3. @Лагербер, я думаю, что это просто вероятность, я редактирую вопрос, чтобы изменить это

4. Позвольте мне попытаться прояснить, о чем вы спрашиваете (потому что это совсем не ясно). Вы пытаетесь понять, каков средний размер самого большого подключенного компонента при prob изменении? Так, например, если prob=0.1 мы ожидаем, что у нас будет небольшой самый большой подключенный компонент, но если prob он больше, то и самый большой подключенный компонент будет больше. Это то, чего ты хочешь?

5. У вас уже есть вероятность prob , используемая для генерации случайного графика G5 . Что такое «распределение вероятностей» G5 ?

Ответ №1:

Попробуй это:

 import networkx as nx  n_nodes = 1000 # number of nodes in the graph n = 100 # number of points in the graph  h = 1 / (n - 1) x = [h * i for i in range(n)] y = [max(nx.connected_components(nx.gnp_random_graph(n_nodes, prob)),  key=len)  for prob in x]  

Теперь у вас есть x и y, и вы можете построить их на графике