如何从闪亮的 ggplotly 中获取数据行

2024-01-08

代码如下。

我正在尝试使用plotly_click事件来确定正在选择哪些数据。但是,我不知道该怎么做。 plotly_click 提供的数据非常少,根本不包括分组。我没有任何JS经验,但我知道一定有办法!我的目标是能够选择一个数据点并能够抓取它在 data.frame 中对应的行d1

d1=structure(list(Topic = c("compensation", "manager", "benefits",
                         "family", "communication", "worklifebalance", "perks", "compensation",
                         "benefits", "manager", "communication", "worklifebalance", "family",
                         "perks", "benefits", "compensation", "manager", "communication",
                         "family", "worklifebalance", "perks"),
                  variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L),
                                       .Label = c("Prct", "Count"), class = "factor"),
                  value = c(2.23121245555964, 0.723305136692411, 0.576192227534633,
                         0.202280250091946, 0.190020840995464, 0.153242613706019,
                         0.0122594090964816, 0.913705583756345, 0.609137055837563,
                         0.50761421319797, 0.50761421319797, 0.304568527918782, 0.203045685279188,
                         0, 1.49977276170277, 1.21193758521436, 0.893803969095592,
                         0.439327374640206, 0.348432055749129, 0.242387517042872,
                         0.0757460990758976),
                  group = c("APAC", "APAC", "APAC", "APAC",  "APAC", "APAC", "APAC",
                            "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA",
                            "AMERICAS", "AMERICAS", "AMERICAS", "AMERICAS", "AMERICAS",
                            "AMERICAS", "AMERICAS")),
             .Names = c("Topic", "variable", "value", "group"), class = c("data.table", "data.frame"),
             row.names = c(NA, -21L))


library(needs)
needs(
  stringr,
  data.table,
  tm,
  ggplot2,
  wordcloud,
  readxl,
  dplyr,
  quanteda,
  topicmodels,
  reshape,
  plotly,
  shiny,
  rCharts,
  ggthemes,
  shinyjs,
  shinyWidgets,DT,shinythemes,
  ggrepel,tidyverse,treemapify
)
options(stringsAsFactors = F)

library(shiny)
ui <- fluidPage(
  fluidRow(plotlyOutput('keywords')),
  fluidRow(  verbatimTextOutput("selection")) )



server = function(input,output){
  output$keywords = renderPlotly({


    d0 = d1
    p = ggplot(d0, aes(reorder(Topic,-value), value)) +
      geom_point(aes(colour = value),
        shape = 16,
        size = 3,
        show.legend = F) +
      facet_wrap(~ group)+
      theme_minimal()
    ggplotly(p)


  })
  output$selection <- renderPrint({
    s <- event_data("plotly_click")
      cat("You selected: \n\n")
      as.list(s)

  })
}


shinyApp(ui, server)

我不确定这是否是您想要的,但您可以尝试:

library(shiny)
library(plotly)
library(DT)

ui <- fluidPage(
   fluidRow(plotlyOutput('keywords')),
   fluidRow(verbatimTextOutput("selection")),
   fluidRow(DT::dataTableOutput("table1"))
)   

server = function(input,output){
output$keywords = renderPlotly({

d0 = d1
key <- row.names(d0)
d0 <- data.frame(d3, key)  

p = ggplot(d0, aes(reorder(Topic,-value), value, key = key)) +
        geom_point(aes(colour = value),
                   shape = 16,
                   size = 3,
                   show.legend = F) +
        facet_wrap(~ group)+
        theme_minimal()
      ggplotly(p)


    })
    output$selection <- renderPrint({
      s <- event_data("plotly_click")
      cat("You selected: \n\n")
      data.frame(s)
    })

    selection2 <- reactive({
      s <- event_data("plotly_click")
      cat("You selected: \n\n")
      df <- data.frame(s)
    })

    output$table1 = renderDT({
      d2 <- d1 %>% filter(key == selection2()$key)
      d2 
  }) 
  }

shinyApp(ui, server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从闪亮的 ggplotly 中获取数据行 的相关文章

  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • readRDS() 加载额外的包

    什么情况下会出现readRDS R 中的函数尝试加载包 命名空间 我很惊讶地在新的 R 会话中看到以下内容 gt loadedNamespaces 1 base datasets graphics grDevices methods sta
  • 仅在具有重复块名称的另一个 Rmarkdown 文档中运行一个 Rmarkdown 文档中的代码

    我正在 Rmarkdown 中编写一系列相互补充的报告 我想将上一份报告的结果纳入我目前正在编写的报告中 我看到其他建议使用的问题purl从 Rmarkdown 文档中提取 R 代码然后运行它 所以我尝试了以下操作 r read previ
  • R 条形图中的 X 轴

    我想问一个关于 barplot 轴的问题 首先请看我的数据 SerNo DOY Rain 1 350 0 2 351 0 3 352 0 4 353 0 5 354 0 6 355 0 7 356 0 8 357 0 9 358 0 10
  • R:在 Shiny 中,如何修复应用于“反应性”类对象的“xtable”没有适用的方法

    我收到此错误 Error in UseMethod xtable no applicable method for xtable applied to an object of class reactive UI R library shi
  • 在捕食者-被捕食者系统的生态建模中正确使用 deSolve

    我有一个捕食者 被捕食者模型 其中包含指定的参数和初始值 我在这里用两种方法求解微分方程 1 使用 for 循环 2 使用 deSolve 包 我相信 for 循环是正确的 并且应该给出如下图所示的输出 For loop attempt r
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 当子集长度为零时,如何简洁地处理子集?

    从向量中排除元素x x lt c 1 4 3 2 我们可以减去位置向量 excl lt c 2 3 x excl 1 1 2 这也是动态工作的 excl lt which x which max x gt quantile x 25 1 2
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • 如何优化 R 中的 sapply 来计算数据帧上的运行总计

    我在 R 中编写了一个函数来按月份计算累积总数 但随着数据集变大 我的方法的执行时间呈指数增长 我是一名 R 程序员新手 你能帮我提高效率吗 该函数以及我调用该函数的方式 accumulate lt function recordnum d
  • 使用 dplyr 的 select 引用变量名[重复]

    这个问题在这里已经有答案了 通常我会想要选择变量的子集 其中该子集是函数的结果 在这个简单的例子中 我首先获取与宽度特征相关的所有变量名称 library dplyr library magrittr data iris width var
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

    我正在使用 Rmarkdown 生成 PDF 文档 我想在其中手动定义图号 下面是一个块的示例 r chunk26 fig cap Fig 5 3 My figure caption plot 1 1 我使用特殊的编号来遵循文档的章节 问题
  • 通过 r 中的组变量进行汇总

    我有一个数据框如下 head newStormObject FATALITIES INJURIES PROPVALDMG CROPVALDMG EVTYPE total 1 0 15 2 5e 05 0 TORNADO 15 2 0 0 2
  • 使用插入符和方法 = gamLoess 进行训练时 R 崩溃

    当我运行下面的代码时 R 崩溃了 如果我在训练调用中注释掉tuneGrid行 就不会发生崩溃 我已经用另一个数据集尝试过此操作 但仍然使 R 崩溃 崩溃消息是 R 会话中止 R遇到致命错误 会话被终止 开始新会话 代码是 library s
  • R - 如何为数据范围内的缺失值绘制条形图零点?

    假设我对 1 到 10 之间的整数的 200 个点有 10 个观察值 mysample sample rep seq 1 10 20 10 我想用条形图绘制它 barplot table mysample barplot https i s

随机推荐