小编CJ *_*man的帖子

仅使用代码保存networkD3 Sankey图

我在R中创建了一个Sankey图,使用该networkD3包,我想将其保存为静态图像,使用代码而不是单击"导出" - >"另存为图像...".

我尝试的当前代码(使用 Sankey图作为示例)是:

library(networkD3)

URL <- paste0(
  "https://cdn.rawgit.com/christophergandrud/networkD3/",
  "master/JSONdata/energy.json")
Energy <- jsonlite::fromJSON(URL)
# Plot
jpeg( filename = "Sankey.jpg", width = 4000, height = 4000)
sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source",
              Target = "target", Value = "value", NodeID = "name",
              units = "TWh", fontSize = 12, nodeWidth = 30)
dev.off()
Run Code Online (Sandbox Code Playgroud)

虽然我打开图像时所有的空白框都是空白的.

r sankey-diagram networkd3

4
推荐指数
1
解决办法
1942
查看次数

为 R 中的 Sankey Data 准备数据以获取流频率

我曾尝试使用 ggalluvial 和 networkd3 包创建桑基图,但未能成功。理想情况下,我想了解如何在两者中获得我想做的事情。

数据生成如下:

dat <- data.frame(customer = c(rep(c(1, 2), each=3), 3, 3),
              holiday_loc = c("SA", "SA", "AB", "SA", "SA", "SA", "AB", "AB"),
              holiday_num = c(1, 2, 3, 1, 2, 3, 1, 2))

dat_wide <- dat %>%
        spread(key=holiday_num, value=holiday_loc`)
Run Code Online (Sandbox Code Playgroud)

不确定 dat 还是 dat_wide 更合适?我希望输出可视化以下信息(括号中的数字是频率,因此是流量的宽度)

SA -(2) - SA - (1) - AB

           - (1) - SA
Run Code Online (Sandbox Code Playgroud)

AB -(1) - AB

我按照这个链接上的说明使用 networkd3 为 R 中的离散状态序列networkd3 Sankey 图,但是我最终在图中找到了循环。

下图显示了我想要的类似图表:[![Sankey 图表取自 SAS VA][2]][2]

建议和帮助将不胜感激...

谢谢!

[2]:https …

r sankey-diagram networkd3

4
推荐指数
1
解决办法
1666
查看次数

R networkD3:单击操作显示节点数据帧的信息

我有这个代码:

library(networkD3)

# Load data
data(MisLinks)
data(MisNodes)

new.nodes <- MisNodes
new.nodes$var1 <- runif(nrow(MisNodes),1,2)
new.nodes$var2 <- runif(nrow(MisNodes),1,2)

# Some script to show the node index in the new.nodes data frame
script <- 'alert("row: " + (d.index + 1));'

# Plot
forceNetwork(Links = MisLinks, Nodes = new.nodes,
             Source = "source", Target = "target",
             Value = "value", NodeID = "name",
             Group = "group", opacity = 0.8,
             clickAction = script)
Run Code Online (Sandbox Code Playgroud)

我想通了通过询问来获取节点数据帧的行号d.index + 1。但是我想显示一个包含所有节点信息的表,如下所示(也许格式更好):

    name group size     var1     var2
1 Myriel     1   15 …
Run Code Online (Sandbox Code Playgroud)

javascript networking r networkd3 htmlwidgets

4
推荐指数
1
解决办法
1546
查看次数

如何使用R中的d3Network可视化图形

我正在尝试在R中使用一个名为d3Network的包来可视化某些网络,我在R中使用了这个例子:

# Load data
data(MisLinks)
data(MisNodes)

# Create graph
d3ForceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
               Target = "target", Value = "value", NodeID = "name",
               Group = "group", opacity = 0.4)
Run Code Online (Sandbox Code Playgroud)

它只给了我一堆脚本而不是一个情节.我在互联网上看到了这个例子,似乎其他人从未遇到过这种问题.我做错了什么或遗漏了什么?而且我想知道如何指定Source节点和Target节点的颜色.

提前致谢

r rstudio d3.js sna networkd3

3
推荐指数
1
解决办法
708
查看次数

在R中使用forceNetwork变得疯狂:没有显示边缘

我一直试图在R中使用networkD3包绘制网络一周.该simpleNetwork功能正常工作,但它不能很好地控制图形的外观.该forceNetwork功能就是为了这个目的:显示具有丰富视觉特征的图形.

我遇到的问题几乎与问题相同.我仔细阅读了包文档,并尝试了上述线程中提出的解决方案,没有运气:我得到的是一个没有边连接它们的节点云.

我的data.frames:

EDG

Gene1 Gene2 Prob
  1    22    3
  2    22    6
  3    22    6
  4    22    9
  5    22    3
  6    22    4
  7    22    8
  8    22    4
  9    22    6
 10    22    8
 11    22    6
 12    22   10
 13    22    6
 14    22    3
 15    22    6
 16    22    6
 17    22    0
 18    22    4
 19    22    6
 20    22    4
Run Code Online (Sandbox Code Playgroud)

VERT

Symbol Chr …
Run Code Online (Sandbox Code Playgroud)

plot r networkd3 htmlwidgets

3
推荐指数
1
解决办法
2536
查看次数

RadialNetwork() 的 R networkD3 颜色节点描边

networkd3包包含非常好的函数来创建明显的网络。不同的函数有不同的参数,因此这个问题专门针对 RadialNetwork() 函数。是否可以根据给定的向量改变节点笔划的颜色?

下面的代码创建了一个网络图,但将节点描边的参数更改为包含不同颜色的向量不起作用。

library(networkD3)
library(tidyverse)
library(data.tree)

## Data
input <- list(number=50)
Data_tree <- data.frame(Start="Class",
                      Asset = sample(c("FI","Equity","Currency","Commodities"),input$number,replace = TRUE),
                      Sub_Asset = sample(c("Asia","Europe","USA","Africa","ME"),input$number,replace = TRUE),
                      Ticker = replicate(input$number,paste0(sample(LETTERS,3),collapse=""))) %>% 
unite(col="pathString",Start,Asset,Sub_Asset,Ticker,sep="-",remove=FALSE) %>%
select(-Start) %>% as.Node(pathDelimiter = "-")



radialNetwork(ToListExplicit(Data_tree, unname = TRUE ), 
           linkColour = "#ccc",
           nodeColour = "#fff",
           nodeStroke = "orange",
           textColour = "#cccccc")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r networkd3 htmlwidgets

3
推荐指数
1
解决办法
1270
查看次数

networkD3 Sankey 图 - 控制节点位置

我希望在 R Markdown 中使用 HTML 小部件/Javascript 创建交互式桑基图,因此我正在考虑使用networkD3 包。我希望利用的主要交互性是单击节点,以使从节点发出的路径向用户突出显示。

我之前使用Riverplot 包创建了静态桑基图,您可以在其中指定每列节点的相对位置以及该列中节点的顺序。

回到networkD3产品,我不确定是否可以以相同、简单的方式控制相对节点位置(垂直和水平)。我发现了一些似乎与我的要求相关的帖子,但我不清楚哪些(如果有)已经在包中实现,以及“愿望清单”上有哪些

我找到的帖子是:nodesort固定节点序列浏览器

所以,我的问题是是否有人可以就最好的 R 包或技术提供建议,以便创建一个基于交互式 HTML 小部件的桑基图,并具有初始(相对)节点位置控制?

r r-markdown sankey-diagram networkd3 htmlwidgets

3
推荐指数
1
解决办法
2907
查看次数

如何在 Sankey 图表 networkD3 中添加列标题

我正在制作一个 Sankey 图表,我想在每列的顶部添加文本,以便简要说明所显示的内容。来自 r-graph galery 的示例代码:

library(networkD3)

# A connection data frame is a list of flows with intensity for each flow
links <- data.frame(
  source=c("group_A","group_A", "group_B", "group_C", "group_C", "group_E"), 
  target=c("group_C","group_D", "group_E", "group_F", "group_G", "group_H"), 
  value=c(2,3, 2, 3, 1, 3)
)

# From these flows we need to create a node data frame: it lists every entities involved in the flow
nodes <- data.frame(
  name = unique(c(as.character(links$source), as.character(links$target)))
)

# With networkD3, connection must be provided using id, not using …
Run Code Online (Sandbox Code Playgroud)

r d3.js sankey-diagram networkd3 htmlwidgets

3
推荐指数
1
解决办法
382
查看次数

在R中,如何显示Sankey Graph的链接/路径上的值?

背景

我正在尝试创建一个如下图所示的桑基图。实际上,我想获得一个输出,其中值(10、20、30、40)将在路径(从一个节点到另一个节点)中设置。

在此输入图像描述

我怎么尝试的?

首先,我尝试使用Python的Plotly库。然而,我在某处发现无法在 Plotly(Python)中设置桑基图的链接或路径中的值。后来,我转向了 R(也出于其他一些原因),那里有更多可用的资源(我认为)。然而,在这里,我也面临着同样的问题。我已经检查了SO的许多教程(例如,这个,Q&A(例如,1,2,3 )它们位于. 尽管如此,我仍然找不到在路径中显示值的教程或资源!R

我的问题

如何在 R 中显示 Sankey Graph 的链接/路径上的值?

注意:这个和SO的这个问题似乎很相似。但是,我无法理解如何将它们合并到我的代码中。

示例代码(从这里收集)

# install.packages('networkD3')
library(networkD3)
nodes = data.frame("name" = 
 c("Node A", # Node 0
 "Node B", # Node 1
 "Node C", # Node 2
 "Node D"))# Node 3
links = as.data.frame(matrix(c(
 0, 1, 10, # Each row represents a link. The first number
 0, 2, 20, # represents the node …
Run Code Online (Sandbox Code Playgroud)

javascript r d3.js sankey-diagram networkd3

3
推荐指数
1
解决办法
2607
查看次数

使用没有先验向量的 dplyr 重新排列列(降序/升序)

如果您事先知道哪些列可用,则以下代码可以重新排列列,但是如果想要按降序/升序重新排列列怎么办?StackOverflow 上有一些类似的帖子,但没有一个可以在不知道哪些列可用的情况下做到这一点。

  type value
1  rna     1
2  rna     2
3  rna     3
4  dna    20
5  dna    30


d<- data.frame (type=c("rna","rna","rna"), value = c(1,2,3) )
d2 <- data.frame (type=c("dna","dna"), value = c(20,30) )
df <- rbind (d,d2)


library(dplyr)
df %>%
    group_by(type) %>%
    summarise_all(sum) %>%
    data.frame() %>%
    arrange(desc(value)) %>% # reorder row  
    select_(.dots = c("value","type") ) # reorder column
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

2
推荐指数
1
解决办法
980
查看次数