#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, и вы можете построить их на графике