本文介绍了图表未使用 Shiny R 和 NVD3 渲染的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试使用 NVD3 库创建一个闪亮的时间序列图.我对 R、Shiny 和 NVD3 比较陌生.问题是当我运行 ShinyApp 时,浏览器上没有图表呈现.使用 chromes 开发人员工具,我可以看到 myChart 的 div 已创建并填充了数据,但不明白为什么我看不到图表本身.

I have been attempting to create a Shiny timeseries plot using NVD3 library. Am relatively new to R, Shiny and NVD3. The problem is that when I run the ShinyApp, no chart renders on the browser. Using chromes developer tools, I can see that the div for myChart is created and populated with data, but not understanding why I cannot see the chart itself.

非常感谢您对此事的任何帮助...我的代码是这样的:

Would appreciate any and all help on this matter...My code is like so:

#ui.R
require(rCharts)

shinyUI(pageWithSidebar(
  headerPanel("Population Trend By Age Group:"),

  sidebarPanel(
    selectInput(inputId = "agegrp",
                label = "Choose Agegroup",
                choices = c("0-4",
                            "5-9",
                            "10-14",
                            "15-19",
                            "20-24",
                            "25-29",
                            "30-34",
                            "35-39",
                            "40-44",
                            "45-49",
                            "50-54",
                            "55-59",
                            "60-64",
                            "65-69",
                            "70-74",
                            "75-79",
                            "80-84",
                            "85+"
                ),
                selected = "0-4")
  ),
  mainPanel(
    showOutput("myChart", "nvd3")
  )
))

server.R:

#server.R
require(rCharts)

data <- read.csv("https://raw.githubusercontent.com/kilimba/data/master/data2.csv")
agegroup_mapping <- read.csv("https://raw.githubusercontent.com/kilimba/data/master/agegroup.csv")
data <- merge(data,agegroup_mapping,by.x="agegrp",by.y="agegroup")


shinyServer(function(input, output) {

  output$myChart <- renderChart({

    selection <- subset(data,mapping == input$agegrp)

    plot <- nPlot(n ~ year,
                  data = selection,
                  type = "lineChart",
                  group = "sex")
    # Add axis labels and format the tooltip
    plot$yAxis(axisLabel = "Population", width = 62)

    plot$xAxis(axisLabel = "Year")

    plot$save("ac.html")
    return(plot)

  })
})

谢谢,图迈尼

推荐答案

使用 renderChart2 而不是 renderChart.

rm(list = ls())
library(shiny)
library(rCharts)

data <- read.csv("https://raw.githubusercontent.com/kilimba/data/master/data2.csv")
agegroup_mapping <- read.csv("https://raw.githubusercontent.com/kilimba/data/master/agegroup.csv")
data <- merge(data,agegroup_mapping,by.x="agegrp",by.y="agegroup")

ui =pageWithSidebar(
  headerPanel("Population Trend By Age Group:"),

  sidebarPanel(
    selectInput(inputId = "agegrp",
                label = "Choose Agegroup",
                choices = c("0-4","5-9","10-14","15-19","20-24","25-29","30-34","35-39",
                            "40-44","45-49","50-54","55-59","60-64","65-69","70-74","75-79","80-84","85+"),selected = "0-4"),width=2),
  mainPanel(
    showOutput("myChart", "nvd3")
  )
)

server = function(input, output) {

  output$myChart <- renderChart2({
    #selection <-  data[data$mapping == "0-4",]
    selection <- data[data$mapping == input$agegrp,]

    selection <- subset(data,mapping == input$agegrp)

    plot <- nPlot(n ~ year,
                  data = selection,
                  type = "lineChart",
                  group = "sex")
    # Add axis labels and format the tooltip
    plot$yAxis(axisLabel = "Population", width = 62)
    plot$xAxis(axisLabel = "Year")
    plot$set(width=1600, height=800)

    plot$save("ac.html")
    plot
  })
}


runApp(list(ui = ui, server = server))

这篇关于图表未使用 Shiny R 和 NVD3 渲染的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 05:05