如何修改networkx中节点的轮廓颜色?

2023-12-25

我对 networkx 和使用 matplotlib.pyplot 绘图相对较新,并且想知道如何修改节点轮廓的颜色(或其他属性,例如权重)。我所说的“轮廓”并不是指两个节点之间的弧线或边缘;而是指两个节点之间的弧线或边缘。我的意思是圆圈周围的细黑线,默认情况下用于在绘制网络时表示节点。

例如,当我制作一个只有一个节点的图表并显示它时:

from networkx import *
import matplotlib.pyplot as plt
plt.ion()
G = Graph()
G.add_node(1)
draw(G)

我看到一个带有细黑色轮廓的红色节点(内部有一个黑色“1”,这是节点的标签)。如何将该轮廓的颜色从黑色更改为红色(“#FF0000”)或其他颜色?或者,我可以完全抑制轮廓的显示吗?

我想一定有一个属性,类似于 edge_color 或 node_color,我可以设置。但是,我无法通过网络搜索、networkx 文档或查看图库示例找到这样的属性。如果有人能给我指出适当的属性,我将不胜感激。谢谢!


更新(3/2019): 从networkx 2.1开始,kwargs被转发 https://networkx.github.io/documentation/networkx-2.1/_modules/networkx/drawing/nx_pylab.html#draw_networkx from draw(),所以你应该能够简单地调用draw()edge_color kwarg.

好吧,这有点hacky,但它确实有效。这就是我的想法。

问题

networkx.draw() calls networkx.draw_networkx_nodes(),然后调用pyplot.scatter()绘制节点。问题是关键字 args 接受draw_networkx_nodes()没有被传递给scatter(). (来源在这里 http://networkx.github.io/documentation/latest/_modules/networkx/drawing/nx_pylab.html#draw_networkx_nodes)


为了解决这个问题,我基本上分手了networkx.draw()进入其组件:draw_networkx_nodes, draw_networkx_edges, and draw_networkx_labels.

解决方案

我们可以取返回值draw_networkx_nodes() -- a PathCollection-- 并对其进行操作:您可以使用PathCollection.set_edgecolor() or PathCollection.set_edgecolors()分别带有颜色或列表。

示例代码:

from networkx import *
import matplotlib.pyplot as plt
G = Graph()
G.add_node(1)
# Need to specify a layout when calling the draw functions below
# spring_layout is the default layout used within networkx (e.g. by `draw`)
pos = spring_layout(G)
nodes = draw_networkx_nodes(G, pos)
# Set edge color to red
nodes.set_edgecolor('r')
draw_networkx_edges(G, pos)
# Uncomment this if you want your labels
## draw_networkx_labels(G, pos)
plt.show()

如果您要经常使用它,那么重新定义可能更有意义(IMO)draw_networkx_nodes实际上将 kwargs 传递给scatter。但以上will work.

要完全删除标记边缘,只需将颜色设置为None代替'r'.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改networkx中节点的轮廓颜色? 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有

随机推荐

  • ODP.NET是否需要安装Oracle客户端

    我必须从 NET 代码连接 Oracle 11g DB 为此 我安装了 ODP NET 但在阅读了一些论坛帖子后 我意识到我也需要安装 Oracle 客户端 真的吗 我看到 Oracle 客户端的大小为 ca 2GB 我真的需要安装这么大的
  • ConcurrentMap.remove() 是否在 get() 返回 null 之前提供happens-before 边?

    调用之前线程中是否有操作ConcurrentMap remove 保证发生在之前看到从另一个线程删除后的操作 文档 https docs oracle com javase 8 docs api java util concurrent p
  • 谷歌地图API只返回城市?

    我正在尝试使用 Google 地图 API 仅从 json 请求返回城市 https maps googleapis com maps api place autocomplete json input green 20lanes type
  • Spyder - UMD 已删除:模块

    我已经用 python 闲逛了大约一个月了 有些事情困扰着我 我使用 python x y 工具包 它附带了简洁的 Spyder IDE 我的问题涉及 Spyder 的 UMD 用户模块删除器 I found this http mcsp
  • ZonedDateTime.parse 不适用于解析 am 或 pm 时间

    我正在学习java 试图构建一个工具 根据用户输入 时间 时区A和时区B的输入 将特定时间从时区A转换为时区B 这是关于该工具以特定格式收集时间并将其转换为 ZonedDateTime 对象的部分 import java time Zone
  • 仅当总计数小于阈值时才将行插入 SQL Server 表中

    我正在使用 SQL Server 2012 我有一个存储用户的表 允许的最大用户数为 100 万 我有一个正在注册用户的存储过程 当我插入时 我想确保 users 表中的总行数不会超过 100 万 我更愿意使用允许最大并发性的方法 我相信我
  • 创建适用于 Windows 的用户和访问规则 Github

    我刚刚使用安装了 Githttp windows github com http windows github com 它似乎安装正确 但我无法创建新用户和访问控制设置来访问存储库 我试图查看文档 但不包含类似的内容 我不确定 Window
  • 在 EJS 中循环 JSON

    我在下面的 EJS 中有代码 tr td td tr 行的输出是正确的 是一个由 3 个对象组成的数组 每个对象都有属性 id 名称等 我可以操作该行来填充 JS 中的表 但是 我想知道是否有办法可以按照上述方式完成它 当我运行上面的代码时
  • 以编程方式停止并重新启动 Express 服务器(以更改端口)

    我希望能够基本上更改我的 Express 应用程序正在运行的端口 我试过了 server on close function server listen 3000 server listen 8080 server close 这会返回一个
  • 当推送到github时,为什么git不要求我输入用户名和密码?

    这可能是个愚蠢的问题 但我通过搜索找不到任何关于此的信息 也许 这是一个愚蠢的问题 我已将我的代码存储在 github 中 2小时前 我想更新存储库中的代码 但我的本地没有该代码 所以我克隆了它 修改了代码 然后推送了它 这时候git提示我
  • 如何以编程方式设置 ASP.NET ReportViewer 控件的数据源?

    如何以编程方式设置 ASP NET ReportViewer 控件的数据源 我有一个 VS 2008 ReportViewer 控件 想要在几个不同的报告之间切换 我可以通过设置报表源和刷新控件来切换报表 但我看不到在哪里设置数据源 每个报
  • 如何在 Android 布局中创建覆盖按钮

    我想创建一个将在两个布局之间叠加的按钮 我正在使用线性布局并为其添加适当的权重 附上屏幕截图以供参考 这是我的 XML 标签 xml
  • ZeroMQ 中的 N 到 N 异步模式?

    尽管我阅读了该指南 但我找不到执行以下操作的方法 我们有n个出版商 我们有 m 个订户 每个订阅者订阅某种类型的消息 一个发布者可以发送多种消息 多个发布者可以发出相同类型的消息 如何在 0MQ 中创建 N 到 N 或 N 到 1 到 N
  • GOF 和 GRASP 设计模式有什么区别

    我真的很困惑 GOF 和 GRASP 模式之间的区别 甚至两者都有助于改进面向对象的实践 简答 GoF被提到设计模式 And GRASP are 设计原则 设计原则比设计模式更抽象 长答案 软件工程的主要目的是开发合适的软件 SDLC ht
  • 如何将每个方面的总样本量添加到geom_histogram?

    I want to add total sample size of each facet to geom histogram Expect output as below After read this post https stacko
  • `mut a: &T` 和 `a: &mut T` 有什么区别? [复制]

    这个问题在这里已经有答案了 有人可以解释一下这两者之间有什么区别以及什么时候mut a T最常用 Rust 中的函数参数和 let 绑定是正确的模式 就像左边的那些 gt 匹配 除了 let 和参数模式必须是无可辩驳的 即它们必须始终匹配
  • 如何在不仅使用标准 Rust 库同时运行相同函数的情况下定期运行一组函数?

    我想使用 Rust 创建一个简单的调度程序 以便在定义的时间运行多个并发函数 但如果它们尚未完成 则不要启动更多函数 例如 如果定义的间隔为一秒 则调度程序应运行这些函数 并且如果先前的函数尚未返回 则不再启动更多函数 目标是防止多次运行相
  • ArrayList:查找第 n 次出现的整数

    查找 ArrayList 中第 n 次出现的数字的最佳方法是什么 我已经知道什么了 To find 最后一个索引 https docs oracle com javase 8 docs api java util ArrayList htm
  • 检查位于页面底部附近/底部

    我需要检查某个元素距离页面底部是否为 x 像素 以动态加载新内容 目前 即使栏位于底部 scrollTop 和高度也不匹配 允许使用 jquery 尽管基本的 javascript 会更有帮助 您可能想尝试以下操作 仅在 Firefox 3
  • 如何修改networkx中节点的轮廓颜色?

    我对 networkx 和使用 matplotlib pyplot 绘图相对较新 并且想知道如何修改节点轮廓的颜色 或其他属性 例如权重 我所说的 轮廓 并不是指两个节点之间的弧线或边缘 而是指两个节点之间的弧线或边缘 我的意思是圆圈周围的