首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用复选框以交互方式过滤visNetwork中的节点/边?(使用R Shiny)

在R Shiny中使用复选框以交互方式过滤visNetwork中的节点/边,可以通过以下步骤实现:

  1. 创建一个包含复选框的UI界面,用于选择要过滤的节点/边的属性。可以使用checkboxGroupInput函数创建复选框,并设置选项为节点/边的属性。
代码语言:txt
复制
ui <- fluidPage(
  checkboxGroupInput("filter", "选择要过滤的属性:",
                     choices = c("属性1", "属性2", "属性3"),
                     selected = NULL)
)
  1. 在服务器端,使用observeEvent函数监听复选框的变化,并根据选择的属性过滤visNetwork中的节点/边。可以使用updateVisNetwork函数更新visNetwork图。
代码语言:txt
复制
server <- function(input, output) {
  observeEvent(input$filter, {
    filtered_nodes <- nodes_data[nodes_data$属性 %in% input$filter, ]
    filtered_edges <- edges_data[edges_data$属性 %in% input$filter, ]
    
    updateVisNetwork(
      session = session,
      "network",
      nodes = filtered_nodes,
      edges = filtered_edges
    )
  })
}

在上述代码中,nodes_dataedges_data是包含节点和边数据的数据框,属性是节点/边的属性列名。

  1. 在服务器端,创建visNetwork图,并将其与UI界面进行连接。
代码语言:txt
复制
server <- function(input, output) {
  output$network <- renderVisNetwork({
    visNetwork(nodes_data, edges_data) %>%
      visOptions(highlightNearest = TRUE)
  })
}

在上述代码中,nodes_dataedges_data是包含节点和边数据的数据框。

完整的R Shiny应用程序代码如下:

代码语言:txt
复制
library(shiny)
library(visNetwork)

# 节点数据
nodes_data <- data.frame(
  id = 1:5,
  label = c("节点1", "节点2", "节点3", "节点4", "节点5"),
  属性 = c("属性1", "属性2", "属性1", "属性3", "属性2")
)

# 边数据
edges_data <- data.frame(
  from = c(1, 1, 2, 3, 4),
  to = c(2, 3, 4, 5, 5),
  label = c("边1", "边2", "边3", "边4", "边5"),
  属性 = c("属性1", "属性2", "属性1", "属性3", "属性2")
)

ui <- fluidPage(
  checkboxGroupInput("filter", "选择要过滤的属性:",
                     choices = c("属性1", "属性2", "属性3"),
                     selected = NULL),
  visNetworkOutput("network")
)

server <- function(input, output, session) {
  observeEvent(input$filter, {
    filtered_nodes <- nodes_data[nodes_data$属性 %in% input$filter, ]
    filtered_edges <- edges_data[edges_data$属性 %in% input$filter, ]
    
    updateVisNetwork(
      session = session,
      "network",
      nodes = filtered_nodes,
      edges = filtered_edges
    )
  })
  
  output$network <- renderVisNetwork({
    visNetwork(nodes_data, edges_data) %>%
      visOptions(highlightNearest = TRUE)
  })
}

shinyApp(ui, server)

这样,当用户选择复选框中的属性时,visNetwork图将根据选择的属性进行过滤,只显示符合条件的节点和边。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何R 绘制交互式社会网络图?

需求 最近有个学生问我,如何绘制交互式社会网络图(Interactive Social Network Graph)? 之所以一定要交互式,是因为他应用场景,是演示给客户。...我已经把安装和设置步骤写在了《如何R 快速了解科研领域?》一文。 配套代码和数据,我放在了这个 github 仓库。你可以下载使用。...visNetwork 基于 Javascript 可视化工具库 vis.js 开发,为 R 用户提供了简单易用界面,而且功能也很强大。 ? 我们使用 library 命令来读入它。...这里节点很少,全部同时显示,也能看得清晰。但是假设我们需要处理一所真正学校朋友关系,可以想象那会有成百上千个节点。如果我们希望聚焦,那就得给用户更多交互功能。...我们选择一下年级,拖动节点看看: ? 以上,是样例代码,出现内容解释。 小结 通过本文学习,相信你已经掌握如何把社会网络表格数据,用交互可视化方法展现出来。

1.7K30
  • 学习R语言,一篇文章让你从懵圈到入门

    R和python上都可使用 readr:实现表格数据快速导入。...:R Markdown为基础,用于创作书籍和长篇文档 rticles:提供了一套R Markdown模板 tufte:用于实现Tufte讲义风格R Markdown模板 DT:用于创建交互数据表...自动化分析 以下R包用于创建自动化分析结果数据科学产品: shiny:一个使用R语言开发交互式web应用程序工具。...shinyjs:用于在Shiny应用程序执行常见JavaScript操作 miniUI:提供了一个UI小部件,用于在R命令行中集成交互式应用程序 shinyapps.io:为创建Shiny应用程序提供托管服务...drat:一个用于创建和使用备选R包库工具 testthat:单元测试,让R包稳定、健壮,减少升级痛苦。 roxygen2:通过注释方式,生成文档,远离Latex烦恼。

    4.1K31

    学习R语言,一篇文章让你从懵圈到入门

    R和python上都可使用 readr:实现表格数据快速导入。...rmarkdown :用于创建可重复性报告和动态文档 knitr:用于在PDF和HTML文档嵌入R代码块 flexdashboard:基于rmarkdown,可以轻松创建仪表盘 bookdown:...自动化分析 以下R包用于创建自动化分析结果数据科学产品: shiny:一个使用R语言开发交互式web应用程序工具。...shinyjs:用于在Shiny应用程序执行常见JavaScript操作 miniUI:提供了一个UI小部件,用于在R命令行中集成交互式应用程序 shinyapps.io:为创建Shiny应用程序提供托管服务...drat:一个用于创建和使用备选R包库工具 testthat:单元测试,让R包稳定、健壮,减少升级痛苦。 roxygen2:通过注释方式,生成文档,远离Latex烦恼。

    3.6K60

    学习R语言,一篇文章让你从懵圈到入门

    R和python上都可使用 readr:实现表格数据快速导入。...:R Markdown为基础,用于创作书籍和长篇文档 rticles:提供了一套R Markdown模板 tufte:用于实现Tufte讲义风格R Markdown模板 DT:用于创建交互数据表...自动化分析 以下R包用于创建自动化分析结果数据科学产品: shiny:一个使用R语言开发交互式web应用程序工具。...shinyjs:用于在Shiny应用程序执行常见JavaScript操作 miniUI:提供了一个UI小部件,用于在R命令行中集成交互式应用程序 shinyapps.io:为创建Shiny应用程序提供托管服务...drat:一个用于创建和使用备选R包库工具 testthat:单元测试,让R包稳定、健壮,减少升级痛苦。 roxygen2:通过注释方式,生成文档,远离Latex烦恼。

    3.7K40

    rmarkdown+flexdashboard制作dashboard原型

    这里所说解决方案不仅是指R语言里面有诸多图形语法系统(比如base系统、grid系统、lattic系统等),更重要是它拥有(目前比较成熟)系统级输出方案,你可以理解为如何在项目中从一而终组织你分析内容...其一是shiny+shinydashboard+诸多可视化系统及组件(图表、表格、文本信息),shinydashboard是相当于前端UI模板化R语言api接口,你可以R语法格式去配置交互控件以及组织页面逻辑...比较典型几个HTML Widgets是: Leaflet dygraphs Poltly rbokeh Highcharter visNetwork DT 如果你对这些交互式绘图组间,可以参考HTML...Tabular Data —— 表格 表格输出一般有两种情况,仅输出原生表格或者使用shinyrenderTable函数封装动态更新表格。...可以实现通过全局控件交互来动态更新呈现出图表,DT::datatable自身交互功能使用场景是很受限

    4.3K30

    目前最全,可视化数据工具大集合

    数据可视化技术基本思想是将数据库每一个数据项作为单个图元元素表示,大量数据集构成数据图像, 同时将数据各个属性值多维数据形式表示,可以从不同维度观察数据,从而对数据进行更深入观察和分析。...其可以使用非常简单代码为两个平台创建图表 Python工具 bokeh – 用于 Python 交互式网页绘图工具 ggplot – 与ggplot2 面向R语言 API相同 glumpy – OpenGL...ggplot2 输出添加了交互性), 统计图和简单网络图 rbokeh – 针对 Bokeh R语言接口 rgl – 使用了 OpenGL 3D 可视化 shiny – 用于创建交互式应用和可视化框架...visNetwork交互式网络可视化 Ruby工具 Chartkick – 使用 Ruby 单线创建图表工具 其他工具 不与特定平台或语言绑定工具 Charted – 一个能够从任何数据文件创建自动化...,可分享图表工具 Gephi – 一个用于可视化和制作大型图表开源平台 Lightning – 一个提供API为基础方式获取可再生,网络为基础交互式可视化图表数据可视化服务 RAW – 由

    3.6K70

    使用RShiny创建数据可视化仪表盘详细教程

    数据可视化仪表盘是将数据直观呈现并提供交互强大工具。R语言与Shiny框架结合,使得创建交互式数据可视化仪表盘变得轻松而灵活。...在这篇博客,我们将深入介绍如何使用RShiny创建一个简单而实用数据可视化仪表盘。步骤1:安装和加载必要包首先,确保你已经安装了以下R包:shiny、ggplot2、dplyr。...应用在R运行Shiny应用:RCopy codeshinyApp(ui, server)这将启动Shiny应用,你可以在浏览器访问http://127.0.0.1:XXXX(XXXX为端口号),查看创建数据可视化仪表盘...步骤6:添加更多交互性通过Shiny交互性组件,你可以进一步提升数据可视化仪表盘功能。例如,你可以添加动态过滤器、交互式图表切换等。...RShiny创建一个简单数据可视化仪表盘。

    40310

    🤠 Network | 高颜值动态网络可视化工具(二)

    修改网络文件 有时候我们会想修改已经建好网络文件, 可以使用activate函数单独进行nodes文件或edges文件修改。 这里我们将edges文件weight以降序进行排列。...动态交互网络 有时候我们会想做个交互网络,像Cytoscape软件一样实现单个节点拖拽、排列等。...undefined 这里我们可以使用visNetwork 和 networkD3实现动态、交互网络绘制。...(nodes, edges) 图片 --- 7.1.2 更改排列方式 visNetwork包是支持igraph包layout方式(具体layout可查看上期教程);undefined同时,你也可以使用...edges <- mutate(edges, width = weight/5 + 1) --- 使用igraph包layout_with_fr进行排列 (~ ̄▽ ̄)~ visNetwork(nodes

    51321

    🤠 Network | 高颜值动态网络可视化工具(二)

    修改网络文件 有时候我们会想修改已经建好网络文件, 可以使用activate函数单独进行nodes文件或edges文件修改。 这里我们将edges文件weight以降序进行排列。...动态交互网络 有时候我们会想做个交互网络,像Cytoscape软件一样实现单个节点拖拽、排列等。 这里我们可以使用visNetwork 和 networkD3实现动态、交互网络绘制。...(nodes, edges) ---- 7.1.2 更改排列方式 visNetwork包是支持igraph包layout方式(具体layout可查看上期教程); 同时,你也可以使用visIgraph...visNetworkedges属性并不能通过scale进行缩放,所以我们先手动调整一下edges宽度。...edges <- mutate(edges, width = weight/5 + 1) ---- 使用igraph包layout_with_fr进行排列 (~ ̄▽ ̄)~ visNetwork(nodes

    76410

    如何在Ubuntu 14.04上设置Shiny Server

    介绍 Shiny是一个R包,允许用户将R代码转换为交互式网页。Shiny server是RStudio提供服务器,可用于托管和管理Web上Shiny应用程序。...安装在CVM上最新版本R如何在Ubuntu 14.04上设置R) 具有sudo权限非root用户。 本教程所有命令都应以非root用户身份运行。...我们将以一种方式安装shiny,使其可供服务器上所有用户使用。...如果您运行是32位操作系统或非Ubuntu发行版,则可能需要查阅Shiny Server下载页面,获取有关操作系统具体说明。 现在使用GDebi安装下载文件。...通过设置Shiny Server,我们能够公众可访问方式在Web上托管Shiny应用程序和交互R文档。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

    3.3K10

    在我们shiny服务器部署一个RNA-seq下游分析网页工具

    RNA-seq数据下游分析网页工具不要太多,这里介绍一个最新: Sundararajan Z, Knoll R, Hombach P, et al....源代码是公开,在:https://github.com/szenitha/Shiny-Seq 所以我想着把它安装在我们自己服务器里面,方便国内粉丝使用!...,应该是操作系统迁移问题: ls *.R|while read id;do( mv $id ${id/.R/.r});done 碰到比较麻烦事情就重启,基本上重启能解决99%事情。...会在R里面当做列名字被强制性转为点) 然后是临床信息文件,第一列必须样本名字,必须跟表达矩阵第一行一模一样哦!!!后面其它列可以是各种各样信息咯。...一些效果 还是很棒,至少不需要你自己写代码了,不过就是需要你耗费很多时间来摸索如何使用这个网页工具咯,而且少了很多自定义快乐。 ?

    1.4K21

    Shinyforms | 用 Shiny 写一个信息收集表

    ;•干净和用户友好方法来捕获和报告错误;•问题和表格数据采用 R 列表格式;•支持问题类型:文本,数字,复选框;•能够多次提交同一表单(在表单信息列表中使用 multiple = FALSE 参数以禁止多次提交...如果你想查看所有收集结果,则必须输入密码验证您是管理员 (在表单信息列表中使用 password 参数可设置密码);•支持更复杂输入验证,当字段不满足某些条件时,会给出错误提示消息(在表单信息列表中使用...validations 参数);•可选加入“重置”按钮,用于重置表单字段(在表单信息列表中使用 reset = TRUE 参数);•问题可包含提示文本,显示在标题下方(在问题列表中使用 hint...再举一个例子 此示例与上一个示例相似,但进一步说明了其他一些功能。它显示了如何在一个应用程序插入两个表格,以及如何使用管理员查看功能。...如何将收集结果保存至 Google Sheets 在此示例,我们将首先创建一个新 Google 表格文档。

    3.9K10

    R」第一个Shiny应用(一) hello world

    Shiny 是一个开源 R 包,它为使用 R 构建 Web 应用提供了一个优雅有力 Web 框架。Shiny 帮助你在不需要前端知识条件下将数据分析转变为可交互 Web 应用。...Shiny 构成与安装 每个 Shiny App 都有 2 个关键组成: UI(用户界面):定义应用外形 Server(后端):定义应用如何工作 Shiny 应用了响应式编程技术,可以根据输入变换自动更新输出...使用下面命令进行安装: install.packages("shiny") 然后将包载入当前 R 会话: library(shiny) Hello world 示例 在几种创建 Shiny 应用方式...使用 shinyApp(ui, server) 构建和启动一个 Shiny 应用。 如何运行 如果使用 RStudio: 点击文档工具栏 Run App 按钮。...停止 运行后 R 会话会处于忙碌状态,需要用以下方式停止: RStudio 中点击工具栏停止图标。 R 控制台中键入 Ctrl + C。 关闭 Shiny 应用窗口。

    1.3K20

    62个有用图形可视化库

    16 GGraph 图形可视化库,用于根据Apache 2.0许可发布大数据。它建立在顶级D3之上,扩展了节点概念以及与节点链接。...Graphviz布局程序简单文本语言描述图形,并以图像和Web页面的SVG等格式制作图形;PDF或Postscript包含在其他文档;或在交互式图形浏览器显示。...该库可处理超过300,000条图形。 26 igraph 开源和免费网络分析工具集合。igraph可以用R,Python,Mathematica和C / C ++进行编程。...JS Graph是根据Apache 2.0许可发布 33 jsPlumb 根据MIT许可发布JavaScript图形库,可视方式连接其网页上元素。...该库可以处理大量动态数据并与之交互。 60 visNetwork VisNetwork是专有R软件包,使用vis.js库进行网络可视化。

    5.2K20
    领券