Tamamen bağlanamayan bir dizi grafikle ilgileniyorum, ör. Burada ve burada düğümlerin izole kümeleri olabilir.Python: bir grafiğin renklenmesiyle numpy.asarray ile ilgili hata
Her düğümden geçen en kısa yol sayısına bağlı olarak, her bir düğüme cmap='jet'
'dan gelen bir renk vermek istiyorum.
Kod bloğu: grafik bağlı ve hiçbir kümeleri vardır edilir
#Given my fragmented graph F, count the shortest paths passing through each node:
def num_spaths(F):
num_spaths = dict.fromkeys(F, 0.0)
spaths = nx.all_pairs_shortest_path(F)
for source in F:
for path in spaths[source].values():
for node in path[1:]:
num_spaths[node] += 1
return num_spaths
num_short_paths=num_spaths(F) #Calling the function on F
my_shortest_paths = num_short_paths.values() #Getting the dict values
nodes = F.nodes() #Storing the nodes in F
#Determining the number of colors
n_color = numpy.asarray([my_shortest_paths[n] for n in nodes])
, ben sorunumuz yok. Grafiğin kümeleri varsa, n_color
, sürekli olmayan bir dizi olarak sonuçlanır, çünkü parçalanmış grafik bazı düğümleri (örneğin, 0'dan N'ye gidiyor, tüm düğümler nodes
'da grafik parçalanmışsa mevcut değildir) kaybetti.
Bu, bir hata üretir: IndexError: list index out of range
n_color = numpy.asarray([my_shortest_paths[n] for n in nodes])
satırında işaret eder.
- Sigara parçalanmış grafik:
nodes=[0,1,2,3...,N]
- Parçalanmış grafiği:
nodes=[0,2,3,...,N]
Sorum: nasıl inşa edebilirsiniz benim n_color
dikkate alarak
düğümler hakkında daha net olmak gerekirse grafiğimde bazı düğümler mevcut olmayabilir? Bence bu soru şu şekildedir: 'u, cmap
ile birlikte kullanılmak üzere, ayrık fakat sürekli olmayan bir şekilde nasıl oluşturabilirim?
DÜZENLEME
Ben böylece bazı sınır oluşturarak, n_color=[0,5000,10000,15000,20000,25000,30000,35000,40000,45000,50000]
ile çalıştı, ama sonra bu hatayı alıyorum: ValueError: Color array must be two-dimensional
.