def _column_data_source(nodes, weights, palette):
data = dict(
xname=[],
yname=[],
colors=[],
alphas=[],
weight=weights.flatten())
for i, node1 in enumerate(nodes):
for j, node2 in enumerate(nodes):
data['xname'].append(node1['label'])
data['yname'].append(node2['label'])
if (node1['group'] == node2['group']) and (weights[i, j] > 0): # ingroup relationship
group_color = palette[node1['group']]
alpha = 1.0
elif (node1['label'] == node2['label']): # diagonal
group_color = 'lightgrey'
alpha = 0.2
elif (weights[i, j] > 0): # outgroup relationship
group_color = 'grey'
alpha = 0.9
else: # no relationship
group_color = 'lightgrey'
alpha = 0.1
data['alphas'].append(alpha)
data['colors'].append(group_color)
return ColumnDataSource(data)
评论列表
文章目录