简体   繁体   English

selectInput 变量影响图表输出 - 组参数? 最好使用 highcharter 输出 [Shiny app]

[英]selectInput variable to influence chart output - group argument? Preferably using highcharter output [Shiny app]

I am new to shiny and R in general and am stuck on how to make my app more interactive.我一般不熟悉闪亮和 R,并且坚持如何使我的应用程序更具交互性。 I have other parts of the functionality working however the interactivity that i was after just isn't getting there and have hit a brick wall.我还有其他部分的功能在工作,但是我所追求的交互性并没有到达那里并且已经撞到了砖墙。

I have a dataset that I would like the user to be able view via selected grouping choices, it is a collection of obsveration for given KeyDates and for my purposes, I would like to see this graphed to show by: Year/Quarter or Month.我有一个数据集,我希望用户能够通过选定的分组选项查看,它是给定 KeyDates 的观察集合,为了我的目的,我希望看到这个图表显示为:年/季度或月。

> head(myData)
     KeyDate              Area       SubArea       MetricGroup                            Metric Count Amount Year Quarter MonthNo WeekNo
1 2019-11-30           Billing       Billing Billing Documents            Bill Documents Created     0     NA 2019       1      11     48
2 2019-11-30           Billing       Billing  Billing Outsorts                     Bill Outsorts     0     NA 2019       1      11     48
3 2019-11-30 Device Management Meter Reading     Meter Reading        Implausible Reads Uploaded     0     NA 2019       1      11     48
4 2019-11-30 Device Management Meter Reading     Meter Reading No of Implausible reads - Backlog   847     NA 2019       1      11     48
5 2019-12-01           Billing       Billing Billing Documents            Bill Documents Created     0     NA 2019       2      12     48
6 2019-12-01           Billing       Billing  Billing Outsorts                     Bill Outsorts     0     NA 2019       2      12     48

ui.R用户界面

# Load the relevant libraries
library(shiny)
library(highcharter)

# Use a fluid Bootstrap layout
fluidPage(    

  # Give the page a title
  titlePanel("Demo of dynamic chart selection?"),

  # Generate a row with a sidebar
  sidebarLayout(      

    # Define the sidebar with two input variables?
    sidebarPanel(
      selectInput("chartGroup", "Chart Grouping:", 
                  choices=c("Year", "Quarter", "MonthNo")),
      # hr(),
      helpText("How would you like to display the data?"),
      selectInput("chartMetric", "Chart Metric:", 
                  choices=c("Bill Documents Created", "Bill Outsorts", 
                            "Implausible Reads Uploaded", "No of Implausible reads - Backlog")),
      # hr(),
      helpText("Which dimension would you like to view?")      
    ),

    # Create a spot for the barplot
    mainPanel(
      highchartOutput("testPlot")  
    )

  )
)

server.R服务器

# Load the relevant libraries
library(dplyr)
library(highcharter)
library(lubridate)

# This setting may help???
options(stringsAsFactors = FALSE)

# Read in the dataset from csv file
testData <- read.csv("./data/testData.csv", header = TRUE, sep = ",")

# Hack the Date into an actual Date field in R (because I have no idea how else to do it)
tempdate <- as.Date(testData$Date, "%d.%m.%Y")

# Bind the two datsets 
temp_data <- cbind(KeyDate = tempdate, testData)

# Now I have dataset to use for the charting ...
myData <- select(temp_data, -Date)

# Take a peek at the dataset
head(myData)

# Define a server for the Shiny app
function(input, output) {

  # >> Start of testPlot
  output$testPlot <- renderHighchart({

# Show the selection from th UI input
  si_choice <- input$chartGroup
  print(si_choice)
  si_metric <- input$chartMetric
  print(si_metric)

# >> This is where I would like to be able to 'select' what is used for grouping
# >> User could select from Year/Quarter/MonthNo

  # Output the chart using highcharter
  hchart(myData, "column", hcaes(x = KeyDate, y = Count, group = Year)) %>%
    hc_plotOptions(column = list(pointWidth = 10),
                   line   = list(
                     color  = "blue",
                     marker = list(
                       fillColor = "white",
                       lineWidth = 2,
                       lineColor = NULL
                     )
                   ))

  })
# << End of testPlot

}

Can anyone tell me what I have to do to allow for the "group = Year" to respond to user selectinput.谁能告诉我我必须做什么才能让“组 = 年”响应用户选择输入。 "group = input$chartMetric" ... using the correct syntax that is, so that the result that I am looking for is achieved? "group = input$chartMetric" ... 使用正确的语法,以便实现我正在寻找的结果?

  # Output the chart using highcharter
  hchart(myData, "column", hcaes(x = KeyDate, y = Count, group = Year)) %>%

Many thanks in advance for this novices question非常感谢这个新手问题

The syntax needed is: group = !!sym(input$chartGroup)所需的语法是: group = !!sym(input$chartGroup)

Which converts the text to the column name from the dataset它将文本转换为数据集中的列名

# Output the chart using highcharter hchart(myData, "column", hcaes(x = KeyDate, y = Count, group = !!sym(input$chartGroup))) %>%

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 R Shiny selectInput 反应性多变量输出 - R Shiny selectInput reactivity with multiple variable output R Shiny selectInput 更新源脚本中变量的值,该变量用于计算应用程序绘制的模型输出 - R shiny selectInput to update value of a variable in source script, the variable is used to compute the model output plotted by the app 如何使用selectInput函数在R Shiny应用程序中获取表或数据框作为输出? - How to get a table or dataframe as a output in R shiny app using selectInput function? 你可以在一个闪亮的应用程序中将 selectInput 连接到多个输出表吗? - Can you connect selectInput to multiple output tables in a shiny app? 在Shiny App中呈现Highcharter饼图时出错 - Error in rendering Highcharter Pie chart in Shiny App 如何将闪亮的 selectInput 的输出与数据表连接 - How to connect the output from shiny selectInput with a datatable 饼图 shiny 应用程序使用 selectinput - pie chart shiny application using selectinput 使用 Shiny App 和 selectInput 并根据列中的每个唯一值进行计算以输出新表 - Use Shiny App with selectInput and calculations based on each unique value in a column to output new table MultiBarChart与HighCharter在闪亮的应用程序 - MultiBarChart with HighCharter in shiny app 在Shiny应用中使用函数renderUI(selectInput()) - using a function to renderUI(selectInput()) in Shiny app
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM