R 使用SHINK时输出sankey图不正确

R 使用SHINK时输出sankey图不正确,r,shiny,rcharts,sankey-diagram,R,Shiny,Rcharts,Sankey Diagram,在常规R会话中创建sankey图时,输出看起来正常。工具提示显示连接之间的箭头: require(rCharts) require(rjson) links <- matrix(unlist( rjson::fromJSON( file = "http://bost.ocks.org/mike/sankey/energy.json" )$links ),ncol = 3, byrow = TRUE) nodes <- unlist( rjson::fromJSO

在常规R会话中创建sankey图时,输出看起来正常。工具提示显示连接之间的箭头:

require(rCharts)
require(rjson)

links <- matrix(unlist(
  rjson::fromJSON(
    file = "http://bost.ocks.org/mike/sankey/energy.json"
  )$links
),ncol = 3, byrow = TRUE)
nodes <- unlist(
  rjson::fromJSON(
    file = "http://bost.ocks.org/mike/sankey/energy.json"
  )$nodes
)

links <- data.frame(links)
colnames(links) <- c("source", "target", "value")
links$source <- sapply(links$source, FUN = function(x) {return(as.character(nodes[x+1]))}) #x+1 since js starts at 0
links$target <- sapply(links$target, FUN = function(x) {return(nodes[x+1])}) #x+1 since js starts at 0
sankeyPlot <- rCharts$new()
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey')
sankeyPlot$set(
  data = links,
  nodeWidth = 15,
  nodePadding = 10,
  layout = 32,
  width = 960,
  height = 500,
  units = "TWh",
  title = "Sankey Diagram"
)
sankeyPlot


问题与多个文件中的字符编码有关。这就是我在Windows 7计算机上解决问题的方法

  • 鼠标悬停工具提示问题
  • 箭头字符用于构建源和目标之间的“链接”。它出现在以下文件中:

    example_build_network_sankey.html
    layouts\chart.html
    layouts\chart_static_title.html
    layouts\chart.html
    
    将箭头替换为ASCii字符-> 因此,代码如下所示:

    .text(function (d) { return d.source.name + " -> " + d.target.name + "\n" + format(d.value); });
    
  • 图表下方的字符
  • ïïïïïïïïïïï

    \libraries\highlighters\prettify\css\sunburst.css
    \layouts\chart.html
    \libraries\widgets\d3_sankey\layouts\chart.html
    

    我使用UltraEdit中的“在文件中搜索并替换”功能将这个特殊字符替换为空白。这是一个棘手的问题,因为我无法在UE编辑器中看到角色。如果我强调了空白,它看起来像一个背景。这个字符也可以在jquery-1.8.2.min.js中找到。

    我无法重现您面临的问题。闪亮的应用程序运行良好,工具提示显示箭头。我怀疑这可能是由于编码问题。你能打印你的
    sessionInfo()
    。我添加了它。OS=windows 8。啊,windows 8+非UTF-8编码。这将是一个有趣的解决:)我相信这是一个编码问题。让我想想解决这个问题的最佳方法。好的,谢谢!同时,是否有解决办法?这里有同样的问题,但似乎还没有答案。提示:
    ï»
    是(十六进制EF BB BF)的3个字节,根据Unicode标准,文本编辑器不会以Unicode文本模式显示这些字节。在UltraEdit的“另存为”对话框中,可以设置一个选项,以保存不带BOM或带BOM的UTF-8编码Unicode文件。在UltraEdit中,还有两种配置设置,它们定义了默认情况下不使用或使用BOM保存UTF-8编码文件。
    .text(function (d) { return d.source.name + " -> " + d.target.name + "\n" + format(d.value); });
    
    \libraries\highlighters\prettify\css\sunburst.css
    \layouts\chart.html
    \libraries\widgets\d3_sankey\layouts\chart.html