NetworkX 中的图排列和旋转

2024-01-31

l 与 Networkx 合作生成某种类型的图表。

现在我想排列节点并旋转图形(80°,90°,120°度)

我怎样才能申请排列 and rotation在带有 NetworkX 的图表上?

Edit_1:

给定图的邻接矩阵,我希望以保留边和顶点链接的方式旋转图。唯一改变的是节点的位置。

我想做的是将我的图表旋转 90 度。

Input :

图 G 的邻接矩阵

过程 :

在 G 上应用旋转 90 度

Output :

旋转邻接矩阵

这意味着,图保留了其拓扑结构,并且仅保留了改变位置的邻接矩阵的索引。

例如,旋转后索引 0 处的节点 1 将位于索引 4 处。

我尝试了什么?
1)我照顾numpy.random.permutation()但它似乎不接受旋转参数。

2)在networkX中我没有找到任何允许进行旋转的函数。

EDIT2给定一个 5*5 的邻接矩阵(5 个节点:

adj=[[0,1,0,0,1],
[1,0,1,1,0],
[0,0,0,1,1],
[0,0,1,0,1],
[1,1,1,1,0]
]

我想在索引之间进行排列。 假设节点 1 代替节点 3,节点 3 代替节点 4,节点 4 代替节点 1。

这只是节点的排列(保留它们的边缘)。

我想将原始索引和排列后的新索引之间的映射保留在字典中。

其次,我想对该邻接矩阵进行90°的排列或旋转。 (这就像在图像上应用旋转)。我不知道该怎么做。


看一下networkx命令relabel_nodes https://networkx.github.io/documentation/stable/reference/generated/networkx.relabel.relabel_nodes.html#networkx.relabel.relabel_nodes.

给定一个图G,如果我们想重新标记节点0 as 1, 1 as 3, and 3 as 0[因此节点的排列,留下2in place],我们创建字典mapping = {0:1, 1:3, 3:0}。然后我们就做

H = nx.relabel_nodes(G, mapping)

And H现在是排列图。

import networkx as nx
G = nx.path_graph(4)  #0-1-2-3
mapping = {0:1, 1:3, 3:0}
H = nx.relabel_nodes(G, mapping) #1-3-2-0

#check G's adjacency matrix
print(nx.to_numpy_matrix(G,nodelist=[0,1,2,3]))
> [[ 0.  1.  0.  0.]
  [ 1.  0.  1.  0.]
  [ 0.  1.  0.  1.]
  [ 0.  0.  1.  0.]]

#check H's adjacency matrix
print(nx.to_numpy_matrix(H,nodelist=[0,1,2,3]))
> [[ 0.  0.  1.  0.]
  [ 0.  0.  0.  1.]
  [ 1.  0.  0.  1.]
  [ 0.  1.  1.  0.]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NetworkX 中的图排列和旋转 的相关文章

  • Pandas如何按时间段过滤DataFrame

    我有一个包含下表的文件 Name AvailableDate totalRemaining 0 X3321 2018 03 14 13 00 00 200 1 X3321 2018 03 14 14 00 00 200 2 X3321 20
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • Python - 不使用复制模块的深度复制

    本质上 问题是创建一个函数 deepcopy L 它将返回列表 L 的深层副本 但是 我们被告知不要使用 copy 模块或其中的任何函数 我是入门课程的初学者 老实说我在这方面很挣扎 我们真正被告知的唯一一件事是我们应该使用递归来解决问题
  • python 3 argparse 调用函数

    我想在 python3 中创建一个类似命令行 类似 shell 的界面 Argparse 似乎负责解析和显示帮助 错误消息 根据argparse 的 python3 文档 https docs python org 3 5 library
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • 删除 HoloViews 中的 Bokeh 徽标

    是否可以从 HoloViews 生成的图中删除 Bokeh 徽标 没有什么反对的 只是在某些报告中显示它可能没有意义 我知道在 Bokeh 中我可以简单地执行以下操作 p bkp figure p toolbar logo None UPD
  • 在python中读取PASCAL VOC注释

    我在 xml 文件中有注释 例如这个 它遵循 PASCAL VOC 约定
  • 使用 imblearn 管道进行交叉验证之前或之后是否发生过采样?

    在对训练数据进行交叉验证以验证我的超参数之前 我已将数据分为训练 测试 我有一个不平衡的数据集 并且想要在每次迭代中执行 SMOTE 过采样 因此我使用以下方法建立了一个管道imblearn 我的理解是 将数据分成k折后应该进行过采样 以防
  • ssl.SSLEOFError: EOF 发生违反协议 (_ssl.c:1129)

    我正在尝试使用 GOOGLE Drive Api 从电脑上传多个文件到云端硬盘 from pydrive auth import GoogleAuth from pydrive drive import GoogleDrive import
  • ValueError:没有为“dense_input”提供数据

    我正在使用以下简单的代码使用tensorflow加载csv并使用keras执行建模 无法弄清楚这个错误 import tensorflow as tf train dataset fp tf keras utils get file fna
  • 更改QLineEdit的ClearButton图标

    我想在Windows 10 1909 64位 上的Python 3 8和PyQt5 5 15 0 上更改我的QLineEdit的ClearButton图标 稍后我想在Linux上运行代码 我尝试应用此处找到的代码 如何在 QLineEdit
  • 根据多个阈值将 SciPy 分层树状图切割成簇

    我想将 SciPy 的树状图切割成多个具有多个阈值的簇 我尝试过使用 fcluster 但它只能削减一个阈值 例如 这是我从另一个问题中摘取的一段代码 import pandas data pandas DataFrame total ru
  • matplotlib 图形的乳胶渲染文本中的中心标题

    我想将 Matplotlib 图形的标题居中 其中在渲染 LaTeX 样式时包含换行符返回 在标题中间插入 Latex 的简单返回代码可以工作 但不会使其居中 从而导致换行符从第一行尴尬地移动 from matplotlib import
  • falcon,AttributeError:“API”对象没有属性“create”

    我正在尝试测试我的猎鹰路线 但测试总是失败 而且看起来我把所有事情都做对了 my app py import falcon from resources static import StaticResource api falcon API
  • 如何在PIL中从ImageDraw中获取图像?

    我在我的项目中使用 PIL 并且有 ImageDraw 对象 我想获取在 ImageDraw 对象上绘制的图像 我如何获取图像 这是你想要的 from PIL import Image ImageDraw im Image new RGBA
  • bs4 `next_sibling` VS `find_next_sibling`

    我在使用时遇到困难next sibling 并且类似地与next element 如果用作属性 我不会得到任何返回 但如果用作find next sibling or find next 然后就可以了 来自doc https www cru
  • QDataWidgetMapper;将 TableWidget 映射到模型

    我没有找到任何文档显示 QDataWidgetMapper 实际上适用于哪些小部件 也没有找到任何使用 QTableWidget 进行映射的实现 它绝对适用于 QLineEdit 和 QComboBoxes 它们是输入小部件 但是是否可以映
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都

随机推荐