如何用权重标记图边

2024-01-17

Warning!当 Mathematica v 8.0 是最酷的孩子时,我发布了这个问题。该bug已于9.0.1版本解决

The help for EdgeLabels http://reference.wolfram.com/mathematica/ref/EdgeLabels.html状态:

然而:

CompleteGraph[4,
 EdgeWeight -> Range@6,
 VertexShapeFunction -> "Name",
 EdgeLabels -> "EdgeWeight"]

结果是:

所以,没有边缘标签......我想这是一个错误。

我使用了一个令人讨厌的结构,例如:

adj = {{\[Infinity], 1, 1, 1, 1}, {1, \[Infinity], 2, 2, 2}, 
       {1, 2, \[Infinity], 2, 2}, {1, 2, 2, \[Infinity], 2}, 
       {1, 2, 2, 2, \[Infinity]}};

WeightedAdjacencyGraph[adj,
    VertexShapeFunction -> "Name", 
    EdgeLabels -> 
     MapThread[Rule,{EdgeList@#,AbsoluteOptions[#, EdgeWeight]/.{_ -> x_}-> x}], 
    GraphHighlight -> FindEdgeCover[#]]  
                                        &@ WeightedAdjacencyGraph[adj]

更好的想法?


对于常规的GraphPlot,您将需要一个稍微复杂的解决方案,使用EdgeRenderingFunction (文档 http://reference.wolfram.com/mathematica/ref/EdgeRenderingFunction.html)。假设您有一个邻接矩阵,其中元素也是(方向)权重。

lilnums = {{0, 2., 1., 3., 0, 6.}, {0, 0, 1., 2., 0, 0}, {1., 8., 0, 2., 0, 
 2.}, {10., 13., 7., 0, 0, 10.}, {0, 0, 0, 0, 0, 0}, {4., 1., 1., 2.,
 2., 0}}

这里有一些顶点标签,假设您正在绘制国际银行间风险敞口的网络图(原始图有更多的国家/地区!)。

names = {"AT", "AU", "CA", "CH", "CL", "ES"}

以下内容满足您的需要。技巧是使用以下部分引用回邻接矩阵#2在零件规格内,引用正确的元素nums,以及Mean[#1]将标签定位在边缘的中点。插槽#1似乎保存了顶点的坐标。

GraphPlot[lilnums, DirectedEdges -> True, 
 VertexRenderingFunction -> ({White, EdgeForm[Black], Disk[#, .04], 
 Black, Text[names[[#2]], #1]} &), 
 EdgeRenderingFunction -> ({AbsoluteThickness[2], Red, 
 Arrowheads[0.02], Arrow[#1, 0.05], Black, 
 Text[Round@ Abs[(lilnums[[#2[[1]], #2[[2]]]] + 
   lilnums[[#2[[2]], #2[[1]]]])], Mean[#1], 
  Background -> Yellow]} &), VertexLabeling -> True, 
 ImageSize -> 600,  
  PlotLabel -> Style["Plot Label", Bold, 14, FontFamily -> "Arial"]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用权重标记图边 的相关文章

  • Mathematica 中的树数据结构

    我主要使用mathematica 作为数学工作台和编写相对较小的临时程序 然而 我正在设计一个系统 打算在 Mathematica 中编程 我需要将数据存储在树中 并搜索和遍历树 尽管我知道如何实现树 但我更喜欢标准的 经过测试的代码 我在
  • 使用 Mathematica 7 调试 Mathematica 5 上的工作程序

    我目前正在阅读 Mathematica 编程指南 并试图编写这本书的第一个程序 基本上 当我运行以下程序时 Plot3D Re Exp 1 x I y x 0 02 0 022 y 0 04 0 042 PlotRange gt 1 8 P
  • Mathematica 表达式开头的非交换乘法和负系数

    在一些非常友善的 stackoverflow 贡献者的帮助下在这篇文章中 https stackoverflow com questions 5023863 redefine noncommutative multiplication in
  • 特征向量变换的差异:Mathematica 与 SciPy

    类似的问题之前曾在这里被问过 但似乎没有人回答我的例子 我使用 Mathematica 和 SciPy 计算矩阵 A 的特征值和特征向量 特征值一致 但特征向量则不然 1 最低 特征值 特征向量一致 2 Mathematica 和 SciP
  • 如何在mathematica中应用涉及一百个变量的规则

    我有一个涉及 x1 x2 x100 的表达式 我还有一个列表lst有 100 个元素 如何将规则应用于此表达式以实现如下所示的效果 exp x1 gt lst 1 x2 gt lst 2 x100 gt lst 100 Thanks exp
  • C# 中的复杂计算

    最好的 最有效的 工具是什么 NET C 用于计算 积分 偏导数 其他不平凡的数学 人们能否对 Mathematica 和 Matlab 及其集成发表评论C Math NET http www mathdotnet com是一个用 C 编写
  • Mathematica 中的“upvalue”是什么意思以及何时使用它们?

    To me g f g x h x 只是详细地等价于f g x h x 你能举一个你必须使用的例子吗 实际上 g f g x h x 不等于f g x h x 后者将定义与f while and 和它的 将定义与g 这是一个至关重要的区别
  • 将声音导出为 WAV 文件

    我从来没有在 Mma 中过多地使用声音 I have t Sound List Violin SoundNote 6 我怎样才能导出t作为 WAV 文件 当我尝试显而易见的事情时 Export c test wav t I get 在这个旧
  • 设计方法:过载与开关?

    关于封装设计的性能和可扩展性 最好是 重载 函数名称 让 Mathematica 根据模式 条件 测试以及系统对定义的排序方式来确定要使用哪个版本 或者使用 Switch 或类似命令 构建单个函数来直接求值 Mathematica 的表达能
  • 用于出版质量图的 Python Pylab pcolor 选项

    我正在尝试使用 DFT 离散傅立叶变换 图pcolor在Python中 我之前一直使用 Mathematica 8 0 来执行此操作 但我发现 Mathematica 8 0 中的颜色条与我尝试表示的数据具有不良的一对一相关性 例如 这是我
  • 有没有办法自动将Matlab 中的结果或数据导入到Mathematica 中?

    有没有办法将结果或数据 例如矩阵 从Matlab导入到Mathematica自动地 或者有什么方法可以先运行Matlab程序 然后运行Mathematica程序自动地 感谢您提供任何有用的答案 至少有三种方法可以解决这个问题 通过 Java
  • 从 Mathematica 中的 Web 设置用户代理导入

    当我使用 Mathematica 连接到我的网站时 Import mysite Data 并查看我的 Apache 日志 我看到 99 XXX XXX XXX 22 May 2011 19 36 28 0200 GET HTTP 1 1 2
  • 在 Mathematica 中查找先前定义的消息

    Mathematica 默认定义了许多有用的消息来表示常见错误 例如使用错误数量的参数调用函数或未找到文件 一般来说 我更喜欢尽可能使用现有的 已定义的消息 因为这样可以更轻松地通过诸如Check Quiet and On Off 然而 我
  • Mathematica:为什么 3D 绘图会记住最后的视点/旋转,即使在再次评估后也是如此?

    我觉得这有点烦人 我制作了一个 3D 绘图 最初它以默认方向出现 然后 我使用鼠标以某种方式旋转它 现在我再次运行该命令 期望获得原始形状 即通过鼠标旋转它之前的原始方向 但相反 它只是给了我与屏幕上相同的绘图 即它似乎保留 记住了该输出单
  • 如何在 Mathematica 中将包含小数点的字母数字(参考)数字转换为字符串

    我有以下类型 DAA76647 1 的参考号 我想将其原封不动地转换为 Mathematica 中的字符串 That is myfn DAA76647 1 给出作为输出 DAA76647 1 是否有捷径可寻 输入不能是字符串 除了转换为字符
  • 下标变量

    有没有什么方法可以强制 Mathematica 独立于无下标变量来处理下标变量 进一步来说 比如说 我有以下定义 Subscript b 1 1 2 Subscript b 2 3 4 b Join Subscript b 1 Subscr
  • 了解跟踪*

    再会 当试图理解数学使用标准的评估顺序Trace and TraceScan最近开发的命令及其漂亮的视觉表示thread https stackoverflow com questions 5459735 the clearest way
  • 可以在 Mathematica 中扩展 PDF、CDF、FindDistributionParameters 等功能吗?

    我开始使用新的 Mathematica 统计和数据分析功能进行越来越多的工作 我周二参加了 Mathematica 统计与数据分析 在线研讨会 非常棒的演讲 我强烈推荐 但我遇到了一些问题 我希望这个论坛上的人可以花点时间考虑一下 我创建了
  • Mathematica 的模式匹配优化不佳?

    我最近询问了为什么PatternTest引起了大量不必要的评估 PatternTest 未优化 https stackoverflow com questions 8484299 patterntest not optimized列昂尼德回
  • 如何导出 ContourPlot3D 曲面并在 Excel、Originlab 或其他类似软件中重新生成

    我尝试过这个 但失败了 fig3D ContourPlot3D x 2 y 3 z 2 0 x 2 2 y 2 2 z 2 2 PlotPoints gt 100 pts InputForm fig3D 1 1 1 ListSurfaceP

随机推荐

  • 如何使用 Indigo 设置 Eclipse PDE/Build?

    在我的项目中 我使用 PDE Build 在 Hudson 的远程服务器上构建我的 RCP 应用程序 当前版本是基于 Eclipse Galileo 的包 它作为构建器应用程序和目标平台都可以正常工作 现在我想将其升级到 Indigo 我需
  • 无法在 Microsoft Powershell 中使用“mvn -D”参数运行 Maven,但可以在命令提示符下运行

    我正在尝试从命令行构建我们的网络项目 但跳过测试 我正在使用命令mvn clean install Dmaven test skip true 当我从传统的黑白命令提示符 又名 DOS shell 运行命令时 该命令有效 但是当我从 Win
  • 直接映射缓存

    直接映射缓存由 16 个块组成 主存包含 16K 块 每个块 8 字节 主存地址格式是什么 意思是每个字段的大小 我知道这些字段是 Tag Block Offset 我只是不知道如何获得每个的尺寸 这是作业吗 为了解决这个问题 您需要知道相
  • Android listview with Glide - 加载后位图加倍

    我正在开发一个安卓应用程序 我的片段之一包含一个简单的列表视图 显示朋友列表 每个朋友都可以有自己的个人资料图片 它是由 Glide 库设置的 当用户没有设置个人资料图片时 将显示默认图像 我的问题是 每次列表中的第一个元素都会获得与列表的
  • 如何使用 QEMU 的简单跟踪后端?

    这是后续this https stackoverflow com questions 37522552 qemu simple backend tracing dosent print anything comment65639854 37
  • javascript:禁用文本选择

    我正在使用 javascript 禁用网站上的文本选择 代码是 可以找到类似的脚本here http rainbow arch scriptmania
  • 使用声明隐藏名称

    include
  • prefix(_ maxLength:) 与符合 LazySequenceProtocol 的结构一起使用时会被类型擦除

    prefix maxLength returns a type erased Sequence in the following codeEXAMPLE http swift sandbox bluemix net repl 599df10
  • 下载文件时如何针对不同浏览器正确设置中文文件名

    我这样设置 response setHeader content disposition attachment filename URLEncoder encode 你好 txt utf 8 它在 Chrome 中有效 但在 Firefox
  • 如何将一个向量的参数插入另一个向量?

    我有一个大小为 5 的 重心 向量 parameter Length barycenters 5 1 2 3 4 5 我想将此向量的参数添加到另一个大小为 7 的向量 b prime 中 这意味着打算让 b prime 0 1 2 3 4
  • 闪亮动态添加输入字段和数据而无需重新渲染

    我正在尝试动态地将新变量添加到正在运行的闪亮应用程序中 但如果我开始编辑一个变量 则每次我添加其他变量时 值 文本和数字 都会重置 这example https stackoverflow com a 56468913 4083743无需使
  • 什么是好的“模板”Yosys 合成脚本?

    我想编写自己的 Yosys 综合脚本 从什么开始是一个好的模板 手册和网页包含各种示例 但没有 权威 的 hello world 示例 The synth命令运行通用综合任务的推荐脚本 看help synth http www cliffo
  • 函数调用后记住数组值

    如果我这样写 c def cf n c range 5 print c if any i gt 3 for i in c is True print hello cf 1 print c 然后我得到 1 2 3 4 hello 我对编程真的
  • 在 PyCharm IDE 5.0.4 中运行特定的单元测试函数

    我正在尝试使用 PyCharm 进行单元测试 使用unittest 并且能够使其工作 测试运行器很好地显示了测试用例和嵌套测试函数的列表 但是 一旦发现测试 我就找不到任何方法来 重新 运行特定的测试函数 唯一可用的按钮将运行整个测试列表
  • 如何解码 JSFuck 脚本?

    我在 JavaScript 中有这样的代码 在控制台中 它将返回 Array filter 如何解码大量与上面文本相似的文本 例如
  • 获取用户当前位置 iOS 8.0

    我尝试使用 MapKit 和 CoreLocation 获取用户当前位置 我对 Objective C 真的很陌生 就我的研究而言 旧版 iOS 到 iOS 8 0 的实现略有不同 我已经正确地遵循了一切 它仍在获取当前位置 我的实际目标是
  • 清除 Bootstrap 中的表单输入字段?

    Bootstrap 是否提供了通过按钮清除表单输入字段的功能 或者我需要通过 jquery 自己推出 从这篇文章jQuery Validate resetForm 不会重置 onFocus 验证 https stackoverflow co
  • 更改 config.assets.version 号有什么作用?

    更改 config assets version 号有什么作用 我知道资产会过期 正如评论中所写 但它在后台会做什么 它会删除所有已编译的资源吗 或者它是否采用该版本号并在其他地方使用它 它将使用另一个指纹 代码附加到文件名 来预编译资产
  • 量角器关闭当前选项卡

    我有一个非角度页面 我需要点击 2 个链接 单击自动在新选项卡中打开的链接之一时 现在我切换到新选项卡并设置browser ignoreSynchronization false因为新打开的选项卡是一个有角度的窗口 并调用我的测试之一 一经
  • 如何用权重标记图边

    Warning 当 Mathematica v 8 0 是最酷的孩子时 我发布了这个问题 该bug已于9 0 1版本解决 The help for EdgeLabels http reference wolfram com mathemat