问题标签 [networkd3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5982 浏览

javascript - R networkD3 包:simpleNetwork() 中的节点着色

networkD3包(参见此处此处)允许用户创建简单的交互式网络:

有没有办法指定我希望src向量中的所有元素都是某种颜色,同时允许target向量中的所有元素都是不同的颜色?这将使我能够在视觉上区分src节点和target网络中的节点。

目前似乎不支持此功能simpleNetwork()(但我希望有人可以通过自制脚本帮助我):

在此处输入图像描述

这里提出了一个类似但不相关的问题。

0 投票
2 回答
3235 浏览

r - 如何在 networkD3 的 sankeyNetwork 中为组着色?

我的节点由名称和组组成,但我似乎无法在我的 sankey 图中为组实现不同的颜色。颜色要么是默认的全蓝色,要么是使用下面的代码全黑。

这是我使用的代码:

这是我得到的输出: 在此处输入图像描述

0 投票
2 回答
1515 浏览

r - 更改 networkD3 绘图的背景颜色

假设我制作了一个 networkD3 图 - 使用包中的最小示例

如果我在浏览器中打开它,我可以使用开发人员工具将主体的背景颜色更改为例如background-color: #DAE3F9;"

有没有办法自动将绘图的背景颜色(从默认白色)定义为另一种颜色,而无需在浏览器中打开?基本上,我们可以像添加 JS 函数一样直接将 CSS 添加到代码中吗?

0 投票
2 回答
4566 浏览

r - 将关系数据转换为R中的分层列表

这是我的第一个问题;所以,请温柔一点。

我有一些数据形式为:

本质上,这是可用于制作网络地图的边列表:

在此处输入图像描述

我想将其转换为可以在diagonalNetwork下面的函数中使用的形式。

像这样:

在此处输入图像描述

当我尝试使用此循环生成列表时:

我收到此错误:

1)有没有更好的方法来创建一个列表diagonalNetwork

2) 做不到这一点;如何修改我的循环以退出正确结构的列表?

3)我应该使用其他完整的功能/包吗?

感谢您提供的任何帮助,我已经用头撞墙了一段时间。也欢迎就 SO 提出问题的更好方法提供反馈。

澄清:

在这里可以找到一个类似的问题,将数据帧转换为 treeNetwork 兼容列表。然而,它依赖于一个数据结构,其中根始终位于第一列,其子节点位于后续列,而不是 igraph 中常用的这个问题中的边列表。

0 投票
1 回答
2388 浏览

r - networkD3 forceNetwork:如何更改图例文本颜色,文本标签颜色,并将文本标签放在前面?

我正在尝试对使用R中的 forcenetwork

特别是,我想将文本标签颜色更改为黑色(或白色,用于黑色背景)并将文本标签带到节点的前面。标准选项使得阅读文本标签变得非常困难,因为一些标签颜色太浅,而另一些标签则被密集的节点簇遮挡。

如果我也可以更改图例文本颜色,那就太好了,这样我就可以灵活地更改背景颜色。

如本文中所指出的,一种可能的解决方案劫持一些未使用的参数。

但是,由于没有 JS 知识,我不知道如何编写它,甚至不知道它是否可能。

0 投票
1 回答
1358 浏览

r - 使用 clickAction = NULL 将 networkD3 中的节点链接到网站

有没有办法使用包中forceNetwork()的函数将节点用作外部网站的链接?我在想也许修改?networkD3rclickAction

示例数据:

期望的结果:当用户单击一个节点时,将打开一个新选项卡(例如window.open)指向该节点的关联 URL - 我如何才能clickAction指向MisNodes$URL[d.index]

0 投票
1 回答
174 浏览

javascript - 如何更改 JavaScript 中文本标签的堆栈顺序?

我正在尝试使用 R 中的 networkD3 绘制网络图。我想对显示进行一些更改,以便可以轻松阅读文本标签(鼠标悬停时出现)。

请参阅此处的链接以获取示例。注意:跳转到 d3ForceNetwork 图。

如示例中所示,标签由于其颜色而难以阅读,并且经常被周围的节点遮挡。我一直在弄乱 JS 文件并设法将文本标签颜色更改为黑色。但是,由于不了解 JS 或 CSS(实际上我什至无法区分两者之间的区别),我不知道如何更改堆栈顺序,以便文本标签始终显示在任何其他对象之上。

谁能告诉我如何才能达到预期的结果?

下面是完整的 JS 文件:

我怀疑我需要在这里对代码进行一些更改:

0 投票
2 回答
1935 浏览

r - 多层 SankeyNetwork (NetworkD3) 不在 R 中绘制

我已经成功地使用 NetworkD3 包来绘制 2 层 Sankey 网络。我创建了一个函数,它采用列源、目标和值的数据框并输出一个桑基图。我使用此功能来帮助快速生成类似的图。我的问题不在于函数的效率——尽管我的问题的根源可能在于它。

下面我提供一个可重现的例子。我演示了我的函数如何为两个数据集 - z1 和 z2 生成 SankeyNetwork。但是,当我将这些数据集与创建 3 层 SankeyNetwork 的想法结合起来时 - 查看器中没有任何绘图(我也尝试增加宽度和高度)。我猜这可能与索引有关,尽管在过去我会得到一个关于需要零索引的错误输出。我没有收到任何错误,只是一个空白图。

0 投票
2 回答
3349 浏览

r - 带有 R 库 networkD3 的桑基图不显示颜色

我正在使用 R 的 networkD3 库来创建 Sankey 网络。虽然这对我来说效果很好,但我现在遇到了将属性“NoteID”和/或“NoteGroup”分配给分组和分配颜色的问题,如https://christophergandrud.github.io/networkD3/#sankey所示

以下代码显示了 4 个创建 Sankey 图的示例,只有“Sankey4”按设计工作,即没有颜色:

“Sankey1”尝试使用“NoteID”,就像上面引用的网络示例中使用的那样,但是,这样做会导致图表根本不显示;“Sankey2”的效果相同。无论配色方案定义如何,“Sankey4”都显示为灰色。

我还查看了两者生成的 html 代码,我的 R 代码生成“Sankey1”以及https://christophergandrud.github.io/networkD3/#sankey上使用的代码。显然,关于组有不同:

来自“Sankey1”的 HTML:

网络示例的 HTML 摘录:

更改“Sankey1”的输出 html 以反映 Web 示例的输出解决了该问题,“Sankey1”使用默认颜色模式显示。

我目前正试图了解我正在使用的数据的行为。sankey 函数不依赖于强制列表输入;实际上,我已经将网站中的示例数据集拆分为两个数据框(节点、链接),这确实产生了与 web 示例中相同的带有颜色的 sankey 图。因此,我的示例中的输入数据一定有问题......我猜......任何帮助将不胜感激!谢谢奥利

0 投票
1 回答
707 浏览

r - networkD3 与 igraph 中的配色方案

我有一个网络,我用之前的分析对每个节点进行了表征-并分配了如下颜色:

变量 'node_colors' 是一个从先前分析中生成的向量,以便颜色与顶点放置/聚类一致。

在此处输入图像描述

但是,当我尝试在 networkD3 中实现个性化着色方案时,我收到“未使用的参数”错误:

错误:警告:forceNetwork 中的错误:未使用的参数(colorScale = node_colors)

NetworkD3 似乎只是创建了自己的配色方案......所以当我省略参数时:'colorScale=node_colors',我得到以下信息:

在此处输入图像描述

但正如您所见,颜色与 igraph 图的颜色不同步。

有谁知道如何在networkD3中创建个性化的配色方案(包含一系列颜色的矢量)