def changeLayout(self,Layout='sfdp'):
Layout = (Layout.encode('ascii','ignore')).replace(' ','')
self.g = self.Graph_data().DrawHighlightedGraph(self.EdgeSliderValue)
# asking community detection Engine to compute the Layout
self.pos,Factor = self.communityDetectionEngine.communityLayoutCalculation(Layout,self.g)
# Degree Centrality for the the nodes involved
self.Centrality=nx.degree_centrality(self.g)
self.Betweeness=nx.betweenness_centrality(self.g)
self.LoadCentrality = nx.load_centrality(self.g)
self.ParticipationCoefficient = self.communityDetectionEngine.participation_coefficient(self.g,True)
self.ClosenessCentrality = nx.closeness_centrality(self.g)
for i in range(len(self.ParticipationCoefficient)):
if (str(float(self.ParticipationCoefficient[i])).lower() == 'nan'):
self.ParticipationCoefficient[i] = 0
i = 0
""" Calculate rank and Zscore """
MetrixDataStructure=eval('self.'+self.nodeSizeFactor)
from collections import OrderedDict
self.sortedValues = OrderedDict(sorted(MetrixDataStructure.items(), key=lambda x:x[1]))
self.average = np.average(self.sortedValues.values())
self.std = np.std(self.sortedValues.values())
for item in self.scene().items():
if isinstance(item, Node):
x,y=self.pos[i]
item.setPos(QtCore.QPointF(x,y)*Factor)
Size = eval('self.'+self.nodeSizeFactor+'[i]')
rank, Zscore = self.calculateRankAndZscore(i)
item.setNodeSize(Size,self.nodeSizeFactor,rank,Zscore)
i = i + 1
for edge in self.edges:
edge().adjust()
self.Refresh()
if not(self.PositionPreserve):
self.Scene_to_be_updated.setSceneRect(self.Scene_to_be_updated.itemsBoundingRect())
self.setScene(self.Scene_to_be_updated)
self.fitInView(self.Scene_to_be_updated.itemsBoundingRect(),QtCore.Qt.KeepAspectRatio)
self.Scene_to_be_updated.update()
评论列表
文章目录