【发布时间】:2017-05-08 15:23:35
【问题描述】:
我正在使用networkD3 和闪亮来可视化一些数据。我有一个由networkD3 创建的diagonalNetwork。但是,我希望树垂直显示。 networkD3 似乎没有旋转对角网络的选项。
我可以在shiny 中旋转tabPanel 吗?
我在下面添加了代码。如果可能的话,我希望能够旋转diagonalNetwork() 指定的图表。如果没有,我可以旋转整个tabPanel吗?
我注意到networkD3 的forceNetwork 有一个onclick 选项,是否可以以与diagonalNetwork 相同的方式响应节点点击?
#### Load necessary packages and data ####
library(shiny)
library(networkD3)
data(MisLinks)
data(MisNodes)
hc <- hclust(dist(USArrests), "ave")
URL <- paste0(
"https://cdn.rawgit.com/christophergandrud/networkD3/",
"master/JSONdata//flare.json")
## Convert to list format
Flare <- jsonlite::fromJSON(URL, simplifyDataFrame = FALSE)
#### Server ####
server <- function(input, output) {
output$simple <- renderDiagonalNetwork({
diagonalNetwork(List = Flare, fontSize = 10, opacity = 0.9)
})
output$force <- renderForceNetwork({
forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
Group = "group", opacity = input$opacity)
})
##
#dendroNetwork(hc, height = 600)
#
# dendroNetwork(hc, height = 500, width = 800, fontSize = 10,
# linkColour = "#ccc", nodeColour = "#fff", nodeStroke = "steelblue",
# textColour = "#111", textOpacity = 0.9, textRotate = NULL,
# opacity = 0.9, margins = NULL, linkType = c("elbow", "diagonal"),
# treeOrientation = c("horizontal", "vertical"), zoom = FALSE)
}
#### UI ####
ui <- shinyUI(fluidPage(
titlePanel("Shiny networkD3 "),
sidebarLayout(
sidebarPanel(
sliderInput("opacity", "Opacity (not for Sankey)", 0.6, min = 0.1,
max = 1, step = .1)
),
mainPanel(
tabsetPanel(
tabPanel("Simple Network", diagonalNetworkOutput("simple")),
tabPanel("Force Network", forceNetworkOutput("force"))
)
)
)
))
#### Run ####
shinyApp(ui = ui, server = server)
【问题讨论】:
-
如果您向reproducible example 提供示例输入数据,我们可以运行这些数据来测试可能的解决方案,这将更容易提供帮助。
-
感谢您的回复,我已经添加代码了。
-
我没有看到 forcenetwork 的点击事件。我看到了一个鼠标悬停和一个拖放事件,但我不确定这就是你的意思。无论如何,由于它与第一个问题不是很相关,我无论如何建议发表一个新帖子并更清楚地描述第二个问题的所需输出。关于第一个问题,请看下面的答案。
标签: r shiny htmlwidgets networkd3