Grafy Python

0

Mam graf ,który chciałbym pokolorować poszczególne miasta ,np : Warszawa i Kraków. Nie wiem jak to zrobić ,żeby nie zmieniać koloru na wszystkich. oto kod.

%matplotlib inline

import matplotlib.pyplot as plt
import networkx as nx
import numpy as np

wezly = ['Gdynia', 'Gdansk', 'Olsztyn', 'Bydgoszcz', 'Torun','Szczecin','Poznan','Bialystok','Warszawa','Lodz','Czestochowa'
        ,'Radom','Lublin','Kielce','Bytom','Gliwice','Zabrze','Sosnowiec','Katowice','Krakow','BielskoBiala','Rzeszow','Wroclaw']

G = nx.DiGraph()
G.add_edge('Gdynia', 'Gdansk', capacity =0.35 )
G.add_edge('Gdansk', 'Olsztyn', capacity = 2.22)
G.add_edge('Krakow', 'Warszawa', capacity =2.21 )
G.add_edge('Olsztyn', 'Warszawa', capacity =3.45 )
G.add_edge('Olsztyn', 'Bialystok', capacity =4.18 )
G.add_edge('Olsztyn', 'Bialystok', capacity =4.18 )
G.add_edge('Warszawa', 'Lodz', capacity =1.38 )
G.add_edge('Warszawa', 'Lublin', capacity =2.42 )
G.add_edge('Poznan', 'Torun', capacity =2.17 )
G.add_edge('Poznan', 'Bydgoszcz', capacity =1.34 )
G.add_edge('Szczecin', 'Bydgoszcz', capacity =5.25 )
G.add_edge('Szczecin', 'Poznan', capacity =3.48 )
G.add_edge('Szczecin', 'Bydgoszcz', capacity =5.25 )
G.add_edge('Poznan', 'Wroclaw', capacity =2.35 )
G.add_edge('Lodz', 'Poznan', capacity =4.53 )
G.add_edge('Radom', 'Krakow', capacity =2.42 )
G.add_edge('Radom', 'Lublin', capacity =1.42 )
G.add_edge('Torun', 'Olsztyn', capacity =2.30 )
G.add_edge('Radom', 'Lublin', capacity =1.42 )
G.add_edge('Kielce', 'Radom', capacity =1.05 )
G.add_edge('Kielce', 'Czestochowa', capacity =1.46 )
G.add_edge('Bytom', 'Czestochowa', capacity =2.34 )
G.add_edge('Bytom', 'Gliwice', capacity =0.44)
G.add_edge('Katowice', 'Krakow', capacity =0.20)
G.add_edge('Katowice', 'Zabrze', capacity =0.15)
G.add_edge('Zabrze', 'Gliwice', capacity =0.8)
G.add_edge('Sosnowiec', 'Gliwice', capacity =0.37)
G.add_edge('Wroclaw', 'Czestochowa', capacity =1.58)
G.add_edge('Gdynia', 'Szczecin', capacity =4.40)
G.add_edge('Wroclaw', 'Sosnowiec', capacity =4.40)

pozycje = dict(Gdynia=(-4,12) , Gdansk=(-2,11),Olsztyn=(2,8), Bydgoszcz=(-6,5),Torun=(-2,5),
              Szczecin=(-10,6), Poznan=(-6,1),Bialystok=(7,6),Warszawa=(4,2),Lodz=(0,0),
              Czestochowa=(-2,-5),Radom=(3,-2),Lublin=(7,-2),Kielce=(1,-7),Bytom=(-2,-7),
              Gliwice=(-4,-8),Zabrze=(-7,-8),Sosnowiec=(-3,-8),Katowice=(-4,-9),Krakow=(1,-12)
               ,BielskoBiala=(-1,-14),Rzeszow=(7,-15),Wroclaw=(-6,-4))

capacity = nx.get_edge_attributes(G,'capacity')

#
plt.figure(figsize=(8,10))
nx.draw_networkx_nodes(G,pozycje, node_color='yellow')
nx.draw_networkx_labels(G,pozycje)
nx.draw_networkx_edges(G, pozycje,connectionstyle='arc3, rad = 0.2',width=3,alpha=0.1,edge_color='red')

nx.draw_networkx_edge_labels(G,pozycje,edge_labels=capacity,label_pos=0.3,font_size =8)
plt.axis('off');


shortest_airtime = nx.dijkstra_path(G, source='Gdynia', target='Bydgoszcz', weight='capacity')
shortest_airtime


min=nx.shortest_path(G,'Gdynia','Bydgoszcz',weight='capacity')
distance=nx.shortest_path_length(G,'Gdynia','Bydgoszcz',weight='capacity')
print("Najkrotsza droga to: ",distance,"[h]")





0

Tak coś w tym stylu, wiesz może jak wkręcić to do kodu mojego ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1