在networkx中按权重对边缘进行着色

2024-01-02

我在这里只找到了与我想要的类似的东西:

根据权重对网络边缘进行着色 https://stackoverflow.com/questions/17632151/coloring-networkx-edges-based-on-weight

但是我似乎无法将其应用于我的问题。我有一个带有加权边的图,但权重不是唯一的(因此大约有 15 个权重为 1 的边)。我想根据边缘的重量对边缘进行着色,重量越低,颜色越浅。

我尝试应用上述问题中建议的方法,但据我了解,这要求每条边上的权重都是唯一的?

到目前为止,我已经按照不同边缘权重的升序生成了一个列表,并想用它来对可能的边缘颜色进行分类。我试图避免按权重绘制边缘,因为将来我可能需要绘制一个非常大的图形,并且边缘上的权重范围很大。

如果不清楚,请在评论中告诉我,我会提供更具体的信息。

Thanks!

编辑: def draw_graph(目标): nlist = [目标]+G.neighbors(目标) H=nx.子图(G, nlist) n=H.number_of_edges() 颜色 = 范围(n) 标签,权重 = color_and_label_edges(H)

pos = nx.spring_layout(H)
nx.draw(H, pos, node_color='#A0CBE2',edge_color=colours, node_size=100, edge_cmap=plt.cm.Blues, width=0.5, with_labels=False)
nx.draw_networkx_edge_labels(H, pos, edge_labels=labels)
plt.savefig("Graphs/edge_colormap_%s.png" % target) # save as png
plt.show() # display
pass

def colour_and_label_edges(graph):
    d={}
    for (u,v) in graph.edges():
        d[u,v]=graph[u][v]['weight']
    temp=[]
    for val in d.values():
        if val not in temp:
            temp.append(val)
    weights = sorted(temp,key=int)
    return d, weights

上面的代码不完整,但想法是该函数给了我一个权重列表,如下所示:

[1、2、3、4、5、6、9、10、16、21、47、89、124、134、224]

然后我想使用这个列表为每个权重分配一种颜色,权重越高,颜色越深。 (我在这个例子中使用了一个相对于数据集非常小的子图)。希望能澄清一点:S


您可以使用边缘权重和颜色图来绘制它们。您可能需要与下面的颜色图不同的颜色图。

import matplotlib.pyplot as plt
import networkx as nx
import random

G = nx.gnp_random_graph(10,0.3)
for u,v,d in G.edges(data=True):
    d['weight'] = random.random()

edges,weights = zip(*nx.get_edge_attributes(G,'weight').items())

pos = nx.spring_layout(G)
nx.draw(G, pos, node_color='b', edgelist=edges, edge_color=weights, width=10.0, edge_cmap=plt.cm.Blues)
plt.savefig('edges.png')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在networkx中按权重对边缘进行着色 的相关文章

随机推荐

  • 用行均值替换 NA 值

    我想替换通过以下方式获取的矩阵中的 NA 值 read table 这些值应该是相应行的平均值 即表的以下行 1 2 1 NA 2 1 1 2 会成为 1 2 1 1 43 2 1 2 谢谢 这是一些示例数据 m lt matrix 1 1
  • Javascript 显示非常大的数字而不是显示 xe+n [重复]

    这个问题在这里已经有答案了 我的 JavaScript 代码经常输出非常大的数字 我希望完全显示这些数字 而不是获取诸如2 7934087356437704e 56我希望它显示完整的数字 在 JS 中可以实现这一点吗 如此大的数字 你会失去
  • gwt maven war插件配置问题

    我正在 Maven 中开发 gwt 应用程序 在这里我使用 Maven War 插件 一切正常 当我给予MVN安装命令它构建abc war目标文件夹中的文件 但它不是复制已编译的 javascript 文件 module1 and modu
  • 错误:定义表达式时出现“意外符号”

    我正在上一门统计和数据分析课 最近开始使用 R 我收到一条错误消息 到目前为止我还无法准确确定错误是什么或如何修复它 我们得到了绘制该函数的指示 y 0 1x 4 0 5x 3 x 2 3x 2 下一条指令要求遵循此编码并输入上述函数 gt
  • jquery deferred - 等待两个调用完成

    我正在寻找一种在两个 ajax 调用完成后进行回调的方法 when call1 call2 always function Here I want to be sure the two calls are done and to get t
  • 使用facet_wrap显示多个直方图

    样本数据 df lt data frame id rep 1 6 each 50 x rnorm 50 6 mean 10 sd 5 y rnorm 50 6 mean 20 sd 10 z rnorm 50 6 mean 30 sd 15
  • 将 xtable 与 longtable 选项一起使用时重复标头

    在使用 longtable 选项生成 xtable 时 有没有办法重复顶行 设置标题 例如 如果我有 tableSb lt xtable df caption A Very Long Table label ALongTable print
  • 处理不是 Action 请求的 Multipart 请求?

    我一直在想是否可以处理不是操作请求的多部分请求 对我来说这似乎不可能是有原因的 只有 ActionRequest 实现 getFile 类方法 我不能 找到任何简单的方法来获取文件 出于除 Action 之外的请求 要求 如果我不使用 ht
  • 不在 UI 线程中触发 PropertyChanged 会产生哪些副作用?

    如果您实现 INotifyPropertyChanged 您可以在非 UI 线程中引发事件 我应该避免这种情况吗 为什么 Update 这是关于 wpf 应用程序中的绑定 不 你不应该避免这个 WPF 元帅PropertyChanged代表
  • 使用 XSL 封装 HTML 中的单词

    我需要在 HTML 文档中用标签 例如 span 包装每个单词 例如 div Text in a div div div Text in a div p Text inside a p p div 得到这样的结果 div span Text
  • 为了学习目的,Erlang 有哪些有趣的项目可以解决? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近发现了 Erlang 现在正在学习几个教程 到目前为止 我期待着将一些东西作为一个业余爱好项目来实际实施 我对另一个聊天服务器并不真正感兴
  • NetBeans 安装程序未正确找到 Java

    我正在尝试安装 NetBeans 全部 包 并且我很确定我已经安装了 Java SE 开发工具包 但是它没有正确定位它 它出现了错误 Java SE Development Kit JDK was not found on this com
  • 如何仅使用 javascript 将页面高度增加 X 像素

    假设一个 HTML 页面 html content outside of our control javascript block some more html content outside of our control 进一步假设我们能
  • Google 地方信息返回错误的城市

    我正在使用 google autocomplete Places API 构建一个应用程序 如果我对地址 Pongal New York NY United States 使用预测建议 我会在返回地点对象中得到以下项目 地区 曼哈顿 Adm
  • 如何将 numpy 数组转换为 mp3 文件

    我正在使用声卡库来记录我的麦克风输入 它记录在 NumPy 数组中 我想抓取该音频并将其保存为 mp3 文件 Code import soundcard as sc import numpy import threading speaker
  • 像 Exposé 中那样放置框

    有谁知道如何找到最适合特定区域的矩形 矩形可以放大到一定限度 但它们应该保持其比例 我基本上想重建 Mac OS 的 Expos Picture http switchtoamac com guides images expose all
  • 如何解决现有文件和符号链接之间的 npm install 冲突?

    我遇到了一个问题NPM https www npmjs com 它似乎正在检测具有相同名称的现有文件和符号链接之间的冲突 运行时我没有看到任何符号链接ls l从我的项目的根文件夹 我如何弄清楚 NPM 发生了什么并解决这个冲突 持续集成构建
  • 如何区分两棵树以确定父母的变化?

    我有一个树结构 需要重新排列 拖放 然后提交更改 捕捉变化的最佳方式是什么 据我所知 有两种方法 存储每个更改命令 提交更改列表 然后执行每个更改命令 序列化树 然后将新树与旧树进行比较以找出更改的内容 然后执行更改 1 似乎最容易实现 尽
  • 更新后 SQL Server 错误:提供给函数的令牌无效

    我正在使用我的机器 和 SSMS 一切正常 我重新启动后 Windows 10 应用了以下更新 Windows Malicious Software Removal Tool for Windows 8 8 1 10 and Windows
  • 在networkx中按权重对边缘进行着色

    我在这里只找到了与我想要的类似的东西 根据权重对网络边缘进行着色 https stackoverflow com questions 17632151 coloring networkx edges based on weight 但是我似