【发布时间】:2018-07-16 08:59:35
【问题描述】:
情况:
我有一个基于 rcharts 的 sankey 图,我想在我的闪亮应用程序中显示(参见下面的代码)。
问题:
当我调用我的闪亮应用程序时,sankey 图不会显示在闪亮应用程序本身中,而是显示在浏览器的不同选项卡窗口中。标签的地址是file:///C:/Users/Me/AppData/Local/Temp/RtmpcxIBRn/rCharts159410f110f8/index.html
问题:
如何更改我的代码,以便在闪亮的应用程序本身而不是在不同的浏览器选项卡中打开桑基图?
代码:
library(shiny)
library(ggplot2)
library(networkD3)
library(rCharts)
library(igraph)
shinyApp(
ui = fluidPage(
fluidRow(
column(12,
"Look at this Sankey-Plot:"
)
),
fluidRow(
column(12,
plotOutput('SankeyPl')
)
)
),
server = function(input, output) {
g <- graph.tree(40, children = 4)
E(g)$weight = 1
edgelist <- get.data.frame(g) #this will give us a data frame with from,to,weight
colnames(edgelist) <- c("source","target","value")
#make character rather than numeric for proper functioning
edgelist$source <- as.character(edgelist$source)
edgelist$target <- as.character(edgelist$target)
sankeyPlot <- rCharts$new()
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey')
sankeyPlot$setTemplate(script = "http://timelyportfolio.github.io/rCharts_d3_sankey/layouts/chart.html")
sankeyPlot$set(
data = edgelist,
nodeWidth = 15,
nodePadding = 10,
layout = 32,
width = 960,
height = 500
)
output$SankeyPl=renderPlot({sankeyPlot})
}
)
shinyApp(ui, server)
【问题讨论】:
-
sankeyPlot 是一个 rcharts 图。您可能必须使用不同于 renderPlot() 的东西。在较早的帖子中,他们使用 showOutput('SankeyPl', 'd3_sankey') 和 renderChart2({}) 绘制 rcharts 图。这可能是问题所在。但它不再起作用了。
-
我建议在networkD3 中使用
htmlwidgetsSankey 实现,因为rCharts已被弃用。
标签: r d3.js shiny rcharts sankey-diagram