【问题标题】:Using rCharts with Shiny将 rCharts 与 Shiny 一起使用
【发布时间】:2014-11-06 23:37:37
【问题描述】:

我正在开发一个 Shiny 应用程序,但在与 rCharts 集成时遇到了问题。我用数据库“Cars93”制作了一个简单的应用程序,每个人都可以访问它来举例说明我的问题。

我在app里放了一个表格和一个图表,表格只是为了测试数据是否正确。

我的问题是图表没有出现。

提前致谢!

路易斯

ui.R

library(shiny)
library(MASS)
require(rCharts)
options(RCHART_LIB = 'polycharts')
mydata<-Cars93

shinyUI(pageWithSidebar(
  headerPanel('RCharts - Test'),
  sidebarPanel(

    selectInput("Manufacturer2", "Select a Manufacturer", levels(droplevels(mydata$Manufacturer)),
                          selected = "Acura"
    ),
    selectInput("Type2", "Select a Type", levels(droplevels(mydata$Type))[3:4],selected = levels(droplevels(mydata$Type))[3]
    ),




    width = 3

  ),
  mainPanel(
    tabsetPanel(

      tabPanel("Table",dataTableOutput('mytable')),
      tabPanel("Chart",showOutput('myplot', 'polycharts'))




    )
  ))
)

服务器.R

library(shiny)
library(rCharts)
library(MASS)
options(RCHART_WIDTH = 800)
mydata<-Cars93
data2<-Cars93

shinyServer(function(input, output, session) {

  observe({
    updateSelectInput(session, "Type2", choices = levels(droplevels(mydata$Type[mydata$Manufacturer %in% input$Manufacturer2])),selected = levels(droplevels(mydata$Type[mydata$Manufacturer %in% input$Manufacturer2]))[1]
    )
  })

  output$mytable = renderDataTable({
    MANUFACTURER = input$Manufacturer2
    TYPE = input$Type2
    mydata<- mydata[mydata$Manufacturer %in% MANUFACTURER  & mydata$Type %in% TYPE,]
    mydata<-mydata[,c("Manufacturer","Type","Model","Weight")]
    mydata
  })

  output$myplot<- renderChart({
    MANUFACTURER = input$Manufacturer2
    TYPE = input$Type2
    mydata<- mydata[mydata$Manufacturer %in% MANUFACTURER  & mydata$Type %in% TYPE,]
    p1<-rPlot(Weight ~ Model, color = 'Model', data = mydata, type = 'bar')

    p1$guides(
      color = list(
        numticks = length(factor(mydata$Model))
      ),
      y = list(
        min = 0,
        max = 10
      )
    )
    return(p1)
  })

})

【问题讨论】:

  • 您需要设置domp1$set(dom = "myplot") in renderChart 或使用 renderChart2 代替 renderChart
  • 成功了!非常感谢你,@jdharrison!

标签: r shiny rcharts


【解决方案1】:

如果您在服务器函数中使用renderChart,则需要设置dom

p1$set(dom = "myplot")

其中dom 应与outputrenderChart 分配的值相同

或者有一个方便的renderChart2 可以用来代替renderChart,然后dom 不需要设置。

【讨论】:

  • 这个应用程序还有一个问题,我猜是在“观察”功能中。根据用户对制造商或类型的选择,类型不会刷新,绘图也不会出现。
  • 也许用一个不工作的例子开始另一个问题
猜你喜欢
  • 2015-03-02
  • 1970-01-01
  • 2020-07-03
  • 2018-11-18
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多