graph 相关问题

图表是指显示两个或多个变量之间关系的图形(如图表或图表)。对于由顶点和边组成的离散数学结构,请使用图论理论标签。

从 Pyvis python 保存网络图像

我有一个通过 Pyvis 库创建的网络: nt = 网络('900px', '900px') nt.from_nx(N) nt.show('plot.html') 其中 N 是 Networkx 库中的网络。 在最后一行我创建了一个 html 文件...

回答 1 投票 0

将 pyvis 图导出为矢量或 .png 图像。有办法吗?

我正在寻找一种方法将 pyvis 生成的巨大图形导出为矢量图形 .svg 或至少 .png 格式。有办法做到吗?到目前为止,我只找到了保存/导出为...的选项

回答 2 投票 0

未加权图中的路径:从源头到源头的最短行程,强加一个点

在我的未加权图中,我需要从源顶点到达强加的顶点并返回源。 所有顶点最多只能被访问一次。 (该图中可能存在循环。) 我想要长度...

回答 2 投票 0

Matplotlib savefig() 在多个图表上不断保存相同的图表

所以我有一个函数generategraph(file),它根据参数中的数据正确创建条形图,然后保存它。这是保存它的部分。 plt.show() 保存文件 = 文件。

回答 4 投票 0

没有查看器的图形布局算法库

我正在寻找一个开源图形布局算法库,它可以按以下方式运行: 用户发送节点列表(具有不同大小的节点)和边列表作为参数。

回答 1 投票 0

想在Flutter中生成这种类型的Graph

我想在Flutter中生成一个这样的图,我已经提供了图视频链接。如果您知道,请向我提供解决方案,也请观看视频,我已经提供了数据点...

回答 1 投票 0

Plotly 条形图上的文本被错误栏遮挡

我正在尝试绘制带有误差线和数据标签的条形图,但我找不到如何更改文本的位置,以便误差线不会干扰标签。这是一个例子...

回答 2 投票 0

如何在Python中可视化torch_geometric图?

让我们考虑一个例子,我有以下坐标格式的邻接矩阵: > edge_index.numpy() = array([[ 0, 1, 0, 3, 2], [ 1...

回答 2 投票 0

如何计算 NetworkX 中“节点”的中心性统计数据

我构建了一个networkx有向图并计算了标准的“图级”指标:整个图的度中心性、介数中心性、特征向量中心性和页面排名。然而,...

回答 1 投票 0

如何在有向图中找到给定长度的环? (使用网络x)

我正在尝试在有向图中找到长度为 2、3、4 和 5 的循环。到目前为止,我使用 networkx 的 simple_cycles 算法在大多数输入上都运气不错(https://networkx.readthedocs.io/en/

回答 1 投票 0

给定网格中的一个位置,它是什么行和列

我正在编写一个应用程序,我必须将街道地址放在预先定义的标签表上。该标签页有 3 列和 10 行。我有创建标签的循环

回答 5 投票 0

Microsoft Graph API - 列出拥有 OneDrive 许可证的所有用户

我想列出所有拥有 OneDrive 许可证的用户。 我正在使用此 URL,但不起作用。 https://graph.microsoft.com/v1.0/users?$filter=signedLicenses/any(x:x/skuId eq 4b585984-651b-448a-9e53-

回答 1 投票 0

从单点/坐标角度求四角多边形的“左上/右上/左下/右下”坐标

我需要找到四个坐标中的哪一个等于 左上方 右上 左下方 右下角 从单个点/坐标的角度来看。 我的数据格式是:[[x1, y1], [x2, ...

回答 1 投票 0

使用 RefCell 和 Rc 处理循环图中的内存泄漏

我按照 https://ricardomatins.cc/2016/06/08/interior-mutability 中提到的方法使用 Rc 和 RefCell 在 Rust 中创建图形。 类型 NodeRef = Rc 我遵循 https://ricardomatins.cc/2016/06/08/interior-mutability 中提到的方法,使用 Rc 和 RefCell 在 Rust 中创建图形。 type NodeRef<i32> = Rc<RefCell<_Node<i32>>>; #[derive(Clone)] // The private representation of a node. struct _Node<i32> { inner_value: i32, adjacent: Vec<NodeRef<i32>>, } #[derive(Clone)] // The public representation of a node, with some syntactic sugar. struct Node<i32>(NodeRef<i32>); impl<i32> Node<i32> { // Creates a new node with no edges. fn new(inner: i32) -> Node<i32> { let node = _Node { inner_value: inner, adjacent: vec![] }; Node(Rc::new(RefCell::new(node))) } // Adds a directed edge from this node to other node. fn add_adjacent(&self, other: &Node<i32>) { (self.0.borrow_mut()).adjacent.push(other.0.clone()); } } #[derive(Clone)] struct Graph<i32> { nodes: Vec<Node<i32>>, } impl<i32> Graph<i32> { fn with_nodes(nodes: Vec<Node<i32>>) -> Self { Graph { nodes: nodes } } } 我认为这种方法在循环图的情况下会导致内存泄漏。我该如何解决这个问题? 您不必阅读博客文章即可找到答案,只需阅读文档: Rc指针之间的循环永远不会被释放。因此,Weak 用于打破循环。例如,一棵树可以具有从父节点到子节点的强 Rc 指针,以及从子节点返回到其父节点的 Weak 指针。 另请参阅: 有没有一种方法可以在没有运行时开销的情况下构建具有循环链接的结构? 在 Rust 中实现类图数据结构 Rust 中的递归数据结构 Rust 并不是为具有任意反向链接的编程结构(例如图形)而设计的。您可能会寻求自己进行释放,以便可以保留任意边缘。幸运的是,Rust 足够灵活,可以几乎无缝地满足您的场景。 这是一种可能的解决方案。 首先,定义两个宏用于将原始指针转换回借用指针: // Given a class or array pointer, transforms it to a mutable reference #[macro_export] macro_rules! modify { ($ptr:expr) => { (unsafe { &mut *$ptr }) } } // Given a class or array pointer, transforms it to a read-only reference #[macro_export] macro_rules! read { ($ptr:expr) => { (unsafe { &*$ptr }) } } 然后,修改引用,使其成为真正的指针。我在下面添加方法来检查它是否为空,但如果您愿意,也可以使用选项类型。请注意,我将您的类型参数从 i32 更改为 I,因为类型参数大写更符合习惯。 type NodeRef<I> = *mut _Node<I>; pub fn NullNodeRef<I>() -> NodeRef<I> { std::ptr::null_mut() } pub fn IsNullNodeRef<I>(node: NodeRef<I>) -> bool { node.is_null() } 现在您可以使用相同的布局重写节点结构: #[derive(Clone)] // The private representation of a node. struct _Node<I> { inner_value: I, adjacent: Vec<NodeRef<I>>, } #[derive(Clone)] // The public representation of a node, with some syntactic sugar. struct Node<I>(NodeRef<I>); 要创建节点,您需要在堆上分配它,这样您就可以检索到稳定的地址,并且 Rust 不会释放它。 impl<I> Node<I> { // Creates a new node with no edges. pub fn new(inner: I) -> Node<I> { let node_ref = Box::into_raw(Box::new(_Node { inner_value: inner, adjacent: vec![] })); Node(node_ref) } 作为奖励,我添加了一个函数来检查一个节点是否是另一个节点的邻居,以演示宏的使用read!(): pub fn is_pointing_to(self, other: &Node<I>) -> bool { let this_node = self.0; let other_node = other.0; read!(this_node).adjacent.contains(&other_node) } 您可以使用 add_adjacent 宏方便地重写原始函数 modify!()。请注意,不再需要克隆引用,因为引用具有复制语义。 // Adds a directed edge from this node to other node. pub fn add_adjacent(&mut self, other: &Node<I>) { modify!(self.0).adjacent.push(other.0); } } 现在您可以定义图表,但到目前为止它只拥有地址,而不拥有对象本身。因此,您需要实现 Drop 特征,以便您可以手动释放内存: #[derive(Clone)] struct Graph<I> { nodes: Vec<Node<I>>, } impl<I> Graph<I> { fn with_nodes(nodes: Vec<Node<I>>) -> Self { Graph { nodes: nodes } } impl <I> Drop for Graph<I> { fn drop(&mut self) { for node in &self.nodes { unsafe { drop(Box::from_raw(node.0)); } } } } } 免责声明:手动管理内存很容易出错,除非必要,否则我不建议这样做。 我发明这些宏是因为我负责将代码生成器从 Dafny 编写到 Rust,而 Dafny 是一种安全的语言,没有所有权的概念,但可以安全地释放。因此,我生成的代码将使用所有这些宏,但以可证明安全的方式。手动使用它们的风险和收益由您自行承担。 但是,通过这种方法,您可以避免任何内存泄漏。

回答 2 投票 0

创建dijkstras算法并在C语言中遇到问题

在我的程序中,我的任务是获取第一个输入,节点名称,然后根据节点名称的数量,为用于显示

回答 1 投票 0

将 .mat ECG 绘制为 50mm ECG 可视化

我正在尝试绘制此数据库 https://data.mendeley.com/datasets/7dybx7wyfn/3 中的 .mat 文件,并使用 ecg-plot 0.2.8 将它们保存为 .svg 或 .png (https: //pypi.org/project/ecg-plot/)。 我是...

回答 1 投票 0

Boykov-Kolmogorov 最大流算法中图的反向弧上的负流是什么意思?

尝试解决Boost网站上提供的示例问题:https://www.boost.org/doc/libs/1_54_0/libs/graph/example/boykov_kolmogorov-eg.cpp (代码必须运行为 &...

回答 1 投票 0

不用递归来编写迭代深化的DFS

所以目前我有一个带有以下伪代码的DFS 程序DFS(图,源): 创建堆栈S 将源推送到 S 标记来源 当 S 不为空时: 弹出...

回答 2 投票 0

所选站点的 Graph API 权限有什么问题

即使 API 声明值也不包含请求访问所有网站内容的任何权限级别: 在授予权限期间,它会要求对所有共享点站点进行读写: 可以

回答 1 投票 0

谱(费德勒向量)二分生成的子树是否存在断开连接的条件?

我正在尝试将无向树划分为两个子树,其中每个子树都是连接的。我的理解是,这可以使用 Fiedler 矢量来完成,如此处所述。然而,当...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.