- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我开始使用名为 visNetwork
的软件包,我觉得它在未来的用户界面使用方面有很大的潜力。
尽管如此,我还是遇到了一些麻烦。我创建了一个 igraph,并应用了聚类算法,特别是 fastgreedy
算法。
提供的示例代码:
B = matrix(
c(1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 47, 3, 0, 3, 0, 1, 10, 13, 5,
0, 3, 19, 0, 1, 0, 1, 7, 3, 1,
0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
0, 3, 1, 0, 32, 0, 0, 3, 2, 1,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
0, 1, 1, 0, 0, 0, 2, 1, 1, 0,
0, 10, 7, 0, 3, 0, 1, 90, 12, 4,
0, 13, 3, 0, 2, 0, 1, 12, 52, 4,
0, 5, 1, 0, 1, 0, 0, 4, 4, 18),
nrow=10,
ncol=10)
colnames(B) <- c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
rownames(B) <- c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
g96e = t(B) %*% B
i96e = graph.adjacency(g96e, mode = "undirected", weighted = TRUE, diag=FALSE)
然后我对此应用了聚类算法:
V(i96e)$label = V(i96e)$name
V(i96e)$label.color = rgb(0,0,.2,.8)
V(i96e)$label.cex = .1
V(i96e)$size = 2
V(i96e)$color = rgb(0,0,1,.5)
V(i96e)$frame.color = V(i96e)$color
fc<-fastgreedy.community(i96e, merges=TRUE, modularity=TRUE,
membership=TRUE, weights=E(i96e)$weight)
colors <- rainbow(max(membership(fc)))
现在使用 visNetwork 包,我想更改节点的颜色,以便它与聚类算法中的颜色相匹配。我的问题是我不知道如何更改节点的颜色。
vis网络示例:
library(visNetwork)
visIgraph(i96e, idToLabel = TRUE, layout = "layout_nicely")%>%
visNodes(size = 10) %>%
visOptions(highlightNearest = TRUE,
nodesIdSelection = TRUE)
我想让节点的颜色与簇的颜色相同。
任何帮助都会很棒,谢谢!
最佳答案
这里有一个解决方案。只需使用 igraph 构建普通图,然后使用 visNetwork 进行外观更改即可:
代码:
i96e = graph.adjacency(g96e, mode = "undirected", weighted = TRUE, diag=FALSE)
fc<-fastgreedy.community(i96e, merges=TRUE, modularity=TRUE,
membership=TRUE, weights=E(i96e)$weight)
library (visNetwork)
dummy <- toVisNetworkData(i96e)
my.edges <- dummy$edges
my.nodes <- dummy$nodes
my.nodes$groups <- fc$membership
my.nodes$color.background <- c("red", "blue", "green" ,"yellow")[my.nodes$groups]
my.nodes$color.border <- c("red", "blue", "green" ,"yellow")[my.nodes$groups]
my.nodes$size = 5
my.edges$color <- "black"
visNetwork(my.nodes, my.edges)%>%
visIgraphLayout()
关于javascript - IGraph 中的 VisNetwork - 无法实现顶点的簇颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39882153/
关于将igraph与visNetwork结合,我有一个非常简单的问题。我想用visEdges(value = E(graph)$ weight)加权边缘,但这不起作用。 这是一个说明问题的玩具示例:
这个问题已经有答案了: newline in [duplicate] (9 个回答) 已关闭 6 年前。 在 R 中,如何在 visNetwork 中拥有多行标题? \n似乎没有解决方案: requ
这个问题已经有答案了: newline in [duplicate] (9 个回答) 已关闭 6 年前。 在 R 中,如何在 visNetwork 中拥有多行标题? \n似乎没有解决方案: requ
引用我之前的一篇文章,其中包含完整的可重现代码:VisNetwork from IGraph - Can't Implement Cluster Colors to Vertices 我的目标是更改
我已经使用 Shiny 中的 visNetwork 包构建了我的网络。我想单击一个节点,然后从数据框中显示有关该节点的信息。我已经能够使用单击和近点函数对散点图执行此操作,例如此处显示的 Shiny
我正在尝试使用 visNetwork 包可视化我的网络。但我发现自己对控制节点大小和边宽完全感到困惑。在第一个示例中,我在节点中设置了 value=1,在边缘中设置了 value=0.1。在第二个示例
我想使用 visNetwork 包绘制网络。我希望我的节点在所有不同的网络中对相同的组使用相同的颜色。所以我要 A组->蓝色 B组->黄色 C 组 -> 红色。 这是前 3 个默认颜色。这是第一个简单
我有使用“igraph”库制作的网络图: library(tidyverse) library(igraph) set.seed(123) n=15 data = data.frame(tibble(
我想并排放置两个 visNetwork 图以进行视觉比较。使用带有 par() 或 layout() 的 igraph 可以进行多图定位。有没有办法为 visNetwork 做到这一点?解决方法/问题
我找到了一种将 igraph 转换为 visNetwork 的方法(请参阅 Interactive arules with arulesViz and visNetwork )。假设从 igraph
我一直有这个问题。我只能在一张图中获得一个或另一个但不能同时获得两个选项。下面是代码,我从@lukeA 那里得到了很多帮助,让我走到了这一步。 我有下图,我可以在其中将簇颜色输入 visNetwork
我正在尝试在 visNetwork 节点中嵌入一个操作按钮,以便可以通过单击工具提示中的按钮来启动操作。 我可以让按钮出现在节点标签中,但单击它时不会触发任何事件。我哪里出错了? 最小示例: libr
这是一个更普遍的问题:VisNetwork from IGraph - Can't Implement Cluster Colors to Vertices 我有一个 igraph,已转换为 visN
我开始使用名为 visNetwork 的软件包,我觉得它在未来的用户界面使用方面有很大的潜力。 尽管如此,我还是遇到了一些麻烦。我创建了一个 igraph,并应用了聚类算法,特别是 fastgreed
我正在查看美国参议员的 Twitter 网络。我希望能够选择一个参议员(使用 nodeIdSelection)并仅突出显示连接到该选定 Node 的 Node 并仅突出显示这些连接的边缘(这是我无法弄
我使用了此 question 中给出的示例但我想调整它以显示已选择节点的数据(不是所有节点,但只有这个节点)并且也不使用操作按钮,以便在我单击节点时立即显示数据。 我尝试了很多解决方案都没有成功。 当
我正在尝试使用 visNetwork 制作一个 Shiny 的交互式网络/思维导图应用程序。 visNetwork 允许交互式创建和操作网络图,如何将这些结果保存在 R data.frame 中? 我
我想将节点的位置固定在 (1,0)、(0,1)、(-1,0)、(0,-1) 和 (0,0) 处。然而,它不起作用,我的Java知识为零(看来here是关于Java代码的问题)。 有人可以帮忙吗?这是一
我正在探索 visNetwork,无法弄清楚为什么这个不显示边缘 library(visNetwork) nodes=data.frame(node=c('m1','m2','n1','n2')) a
给定的 visNetwork 脚本创建如下快照中的 visNetwork 图。我的问题是,如果您看到第一个和第二个节点,则两者之间的边缘是弯曲的。有没有一种方法可以在不改变边缘长度的情况下使边缘笔直。
我是一名优秀的程序员,十分优秀!