【问题标题】:How to make interactive charts in R Markdown Shiny document?如何在 R Markdown Shiny 文档中制作交互式图表?
【发布时间】:2018-03-30 17:22:45
【问题描述】:

我对 R Markdown 和 Shiny 非常陌生,我正在尝试制作一个简单的交互式 html 文档。我有两个共享相同行名称(公司名称)的数据框,其余的是基于不同度量的百分比(每行加起来为 1)。我想要的是当人们选择一家公司时,会相应地出现两个条形图。我可以创建一个下拉列,但不确定如何添加这两个图表。以下是我的代码:

  ---
  title: "Test"
  author: "Z"
  date: "March 30, 2018"
  output: html_document
  runtime: shiny
  ---

  ```{r}
  Names = c('A','B','C')
  Rev = c(-0.2,0.3,0.4)
  Mar = c(0.5,0.2,0.1)
  Mul = c(0.5,0.2,0.4)
  Lev = c(0.2,0.3,0.1)
  df1 = data.frame(Names,Rev,Mar,Mul,Lev)

  Sal = c(0.4,0.2,0.4)
  Ear = c(0.1,0.2,0.3)
  Pri = c(0.3,0.1,0.1)
  Dev = c(0.2,0.5,0.2)
  df2 = data.frame(Names,Sal,Ear,Pri,Dev)

  selectInput(inputId = 'Company', label = 'Choose a company',
        choices = Names)
  ```

【问题讨论】:

    标签: r shiny r-markdown


    【解决方案1】:

    这是一种方法:

    renderPlot({ ## wrap the plot prep and plot function in a reactive space
      data_to_plot <- unlist(df1[df1$Names == input$Company, 2: ncol(df1)]) # get data
      barplot(data_to_plot) # call the plot function
    })
    

    这是可行的,因为闪亮只允许输入影响反应空间中的事物(大括号{})。此外,可以使用 input 对象调用闪亮的输入。

    【讨论】:

    • 我刚刚在我的数据集上进行了尝试,遇到了一个我在将样本放在一起时没有意识到的问题 - 饼图不会显示负值。我已经更新了我的问题和示例。我试图将pie 更改为barplot,但它不起作用Error: non-numeric argument to binary operator。感谢您的帮助!
    • 绘图函数采用不同的参数(当然你会得到一个错误),但是闪亮绘图的原理是一样的......
    • 哈!完全有道理。最后一个问题:如何在条形顶部显示值?我试过text(x=data_to_plot, labels = as.character(data_to_plot))。值确实会显示,但它们是分散的,其中一些只显示一半。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2021-09-04
    • 2019-05-20
    相关资源
    最近更新 更多