【问题标题】:Visualization graph by centralities [duplicate]中心化的可视化图[重复]
【发布时间】:2022-01-05 13:17:13
【问题描述】:

我在 python igraph 中计算了节点的中介中心性并将其保存在 csv 文件中。 现在我想通过中心点在 python 和 igraph 库或 gephi 中可视化它。

我该怎么做?

【问题讨论】:

  • 您是否使用任何特定方法来计算python-igraph 中节点的介数中心性?我找不到任何东西,但我可以使用边缘的中心性来做一些可视化。
  • 我使用了 g.betweenness()。以节点的中心性,我可以看到图形吗??????
  • 您可能想查看my comment 关于 Python 中交互式绘图igraph 的问题。在过去的几年里,很多事情都发生了变化。与以前的版本不同,您可以pip install python-igraph。但是,仅拥有 igraph 图还不够。您还需要pip install pycairo。我希望这也能解决。
  • 谢谢,我读了你的评论。我是初学者,我对 python 了解不多。你能在 ig.plot() 中帮助我,必须放置哪些参数来可视化图形及其节点的大小代表它们的中心性?
  • @mathfux “与 networkx 相比,igraph 在 Python 中是相当困难的事情。它没有像 networkx 那样记录在案。” 非常欢迎对 igraph 文档的贡献。

标签: python igraph graph-visualization gephi node-centrality


【解决方案1】:

这是一个例子:

from igraph import *
import numpy as np

g = Graph.Famous("Zachary")

gamma = 0.33
plot(g, 
     vertex_color=[round(x) for x in rescale(np.array(g.betweenness())**gamma, out_range=(0, 255))], 
     palette=GradientPalette('Midnight Blue', 'Light Pink'),
     vertex_size = 12,
     bbox = (300,300))

解释:

顶点颜色可以(以及其他方式)指定为整数,表示调色板中的索引。在这里,我在两种颜色之间使用了渐变调色板。调色板中元素的默认数量是 256,因此我们需要生成介于 0..255 之间的颜色索引。在 rescale 函数的帮助下,中介值被转换为这些值。

此外,我对具有指数gamma 的介数值使用了幂律变换,以实现从小值(大多数顶点)到大值(少数顶点)的更平滑过渡。

要根据介数改变顶点区域,您可以使用

plot(g, 
     vertex_size = (1 + np.array(g.betweenness())**0.5) * 3,
     bbox = (300,300))

指数0.5 确保与介数成正比的是面积而不是半径。将值加 1 可确保最小顶点大小。

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 2011-11-18
    • 2018-07-03
    • 2021-11-24
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多