使用d3_sankey复制Sankey图表示例时出现问题

时间:2014-02-24 11:07:54

标签: r d3.js rcharts sankey-diagram

我正在尝试使用rCharts库重现简单示例来绘制sankey图表。我发现this example from scratch并尝试重现它,然而,我想出了一些问题。

首先,我尝试过无需运行此代码。然后我发现并意识到,我需要在我的电脑中使用d3_sankey。因此,我已从here下载并复制到C:\Users\adomas\Documents\R\win-library\3.0\rCharts\libraries\widgets\d3_sankey

然后我再次尝试了这个未更改的代码,但仍然出现以下错误:

Error in file(con, "r") : cannot open the connection In addition: Warning message: In file(con, "r") : cannot open file '/config.yml': No such file or directory

由于这也没有帮助,我尝试改变路径: sankeyPlot$setLib('libraries/widgets/d3_sankey') sankeyPlot$setTemplate(script = "libraries/widgets/d3_sankey/layouts/chart.html")

sankeyPlot$setLib('C:/Users/adomas/Documents/R/win-library/3.0/rCharts/libraries/widgets/d3_sankey') sankeyPlot$setTemplate(script = "C:/Users/adomas/Documents/R/win-library/3.0/rCharts/libraries/widgets/d3_sankey/layouts/chart.html")

然而,这一次,Viewer中的空白屏幕出现但没有实际的Sankey图表,我在控制台中得到以下内容: Warning message: In readLines(file, warn = warn, ...) : invalid input found on input connection 'C:/Users/adomas/Documents/R/win-library/3.0/rCharts/libraries/widgets/d3_sankey/layouts/chart.html

我尝试过改变路径等,但仍然有问题。而且我不确定是否需要使用sankeyPlot$setTemplate。 我想在我闪亮的应用程序中使用Sankey图表,但首先我想简单地在R中重现。建议会有很多帮助!

图书馆的版本: rCharts_0.4.2 igraph_0.7.0 R版本:3.0.2

编辑: 我在不同的系统上尝试过这段代码。一切都在那里工作。库和R的版本是相同的,我复制了相同的文档,只是指定了完整路径。我已经在自己的计算机上再次尝试过,但仍然遇到了同样的错误。

2 个答案:

答案 0 :(得分:7)

我经历过同样的问题。我的解决方案是升级rCharts:

devtools::install_github("rCharts", "ramnathv")

其次,我没有包含sankeyPlot $ setTemplate()行。

最后,$ setLib()中的路径应该是一个直接路径(如@adomasb 的解决方案中所述,以下行可用于直接链接到原始github:

sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey/libraries/widgets/d3_sankey')

最后一种方法的缺点是始终需要互联网来运行脚本。

答案 1 :(得分:2)

好吧,最终它的工作原理应该如此。

我刚刚重新启动了系统,就是这样。但是,如果有人想出同样的问题,请确保指定直接路径,在那里放置d3_sankey所需的所有文件。因此,你宁愿使用 sankeyPlot$setLib('C:/Users/adomas/Documents/R/win-library/3.0/rCharts/libraries/widgets/d3_sankey')

这是精彩的图表类型。祝你好运!