在闪亮的应用程序中使用来自 ggraph 的网络图的链接刷
Using linked brushing with a network graph from ggraph in a Shiny app
我有一个闪亮的应用程序,其中我使用 ggraph
渲染了一个网络图,类似于下面的应用程序:
library(ggraph)
library(igraph)
library(shiny)
ui <- fluidPage(
plotOutput("plot", brush = brushOpts(id = "plot_brush"))
)
server <- function(input, output) {
graph <- graph_from_data_frame(highschool)
output$plot <- renderPlot({
ggraph(graph) +
geom_edge_link(aes(colour = factor(year))) +
geom_node_point()
})
observe(print(
brushedPoints(as_data_frame(graph, what = "vertices"), input$plot_brush)
)
)
}
shinyApp(ui, server)
我想要做的是当您在图表中单击并拖动以捕获某些节点时,我可以检查有关捕获的这些特定点的更多信息。现在,我只是使用 observe({print()})
这样我就可以在控制台中看到捕获的内容。
我的问题是,每当我 select 应用程序中的一个区域时,无论该区域 select 中包含多少节点,我都会在控制台中得到 0 行 returned编辑。如何使 return 区域中包含的节点 selected?
给我指路:
library(ggraph)
library(igraph)
library(shiny)
library(dplyr)
ui <- fluidPage(
plotOutput("plot", brush = brushOpts(id = "plot_brush"))
)
server <- function(input, output) {
graph2 <- graph_from_data_frame(highschool)
set.seed(2017)
p <- ggraph(graph2, layout = "nicely") +
geom_edge_link() +
geom_node_point()
plot_df <- ggplot_build(p)
coords <- plot_df$data[[2]]
output$plot <- renderPlot(p)
coords_filt <- reactive({
if (is.null(input$plot_brush$xmin)){
coords
} else {
filter(coords, x >= input$plot_brush$xmin,
x <= input$plot_brush$xmax,
y >= input$plot_brush$ymin,
y <= input$plot_brush$ymax)
}
})
observe(print(
coords_filt()
)
)
}
shinyApp(ui, server)
我有一个闪亮的应用程序,其中我使用 ggraph
渲染了一个网络图,类似于下面的应用程序:
library(ggraph)
library(igraph)
library(shiny)
ui <- fluidPage(
plotOutput("plot", brush = brushOpts(id = "plot_brush"))
)
server <- function(input, output) {
graph <- graph_from_data_frame(highschool)
output$plot <- renderPlot({
ggraph(graph) +
geom_edge_link(aes(colour = factor(year))) +
geom_node_point()
})
observe(print(
brushedPoints(as_data_frame(graph, what = "vertices"), input$plot_brush)
)
)
}
shinyApp(ui, server)
我想要做的是当您在图表中单击并拖动以捕获某些节点时,我可以检查有关捕获的这些特定点的更多信息。现在,我只是使用 observe({print()})
这样我就可以在控制台中看到捕获的内容。
我的问题是,每当我 select 应用程序中的一个区域时,无论该区域 select 中包含多少节点,我都会在控制台中得到 0 行 returned编辑。如何使 return 区域中包含的节点 selected?
library(ggraph)
library(igraph)
library(shiny)
library(dplyr)
ui <- fluidPage(
plotOutput("plot", brush = brushOpts(id = "plot_brush"))
)
server <- function(input, output) {
graph2 <- graph_from_data_frame(highschool)
set.seed(2017)
p <- ggraph(graph2, layout = "nicely") +
geom_edge_link() +
geom_node_point()
plot_df <- ggplot_build(p)
coords <- plot_df$data[[2]]
output$plot <- renderPlot(p)
coords_filt <- reactive({
if (is.null(input$plot_brush$xmin)){
coords
} else {
filter(coords, x >= input$plot_brush$xmin,
x <= input$plot_brush$xmax,
y >= input$plot_brush$ymin,
y <= input$plot_brush$ymax)
}
})
observe(print(
coords_filt()
)
)
}
shinyApp(ui, server)