Я пишу блестящее приложение, которое будет отображать столбец HighChart of Payments по дате платежа, составленный по отделам. В нереактивной настройке это делается путем передачи набора данных в список, передачи списка в add_series_list
в старшей строке и составления столбчатой диаграммы с накоплением. В реактивном режиме это не создает график.
Это серверный вызов графика. Набор временных данных устанавливается из набора данных текущего месяца, группируется и суммируется.
Реактивный список данных создан. Это затем устанавливается через следующий бит кода. Я не ставил реактив (хотя пробовал с reactive({})
) из-за:
https://shiny.rstudio.com/reference/shiny/1.0.5/reactiveValues.html
Последний бит должен выводить диаграмму и основан на:
Группировка столбцов в Highcharter без использования hchart ()
output$dailyRevenueChart = renderHighchart({
tempData <- reactive({
currentMonthdata() %>%
group_by(PaymentDate, LCO_Indicator) %>%
summarise(GrossAmount = sum(GrossAmount))
})
data_list <- reactiveValues()
data_list <-
tempData() %>%
group_by(LCO_Indicator) %>%
do(data = list_parse2(.[, c('PaymentDate', 'GrossAmount')])) %>%
rename(name = LCO_Indicator) %>%
mutate(type = 'column') %>%
list_parse()
highchart() %>%
hc_xAxis(categories = data$PaymentDate) %>%
hc_add_series_list(isolate(data_list))%>%
#hc_add_series_list(data_lst2)%>%
hc_plotOptions(column = list(
dataLabels = list(enabled = TRUE),
stacking = "normal",
enableMouseTracking = TRUE))
})
Вот пример набора данных:
currentMonthData <- tibble::tribble(
~PaymentDate, ~LCO_Indicator, ~TransActionCount, ~Slaes, ~SalesFreight, ~SalesTax, ~ServiceLabor, ~ServiceMaterials, ~GrossAmount,
"2019-01-01", "Credit", 4L, -189, 0, -3.6, 0, 0, -192.6,
"2019-01-01", "Equipment", 9L, 12286, 0, 250.66, 0, 0, 12536.66,
"2019-01-01", "Equipment", 2L, 9.9, 0, 0, 0, 0, 9.9,
"2019-01-02", "Supply", 2L, 658, 0, 39.48, 0, 0, 697.48,
"2019-01-02", "Supply", 190L, 0, 0, 0, 9523.62, 2287.9, 12269.38,
"2019-01-02", "Equipment", 76L, 26682.18, 5, 1274.05, 0, 0, 24639.73
)
Раздел пользовательского интерфейса:
fluidRow(
column(12,
tabsetPanel(type = "tabs",
tabPanel("Daily Revenue", highchartOutput("dailyRevenueChart"))
)
)
Я ожидаю, что в интерфейсе пользователя будет выведен столбец старшей диаграммы с накоплением. Я проверил базовую диаграмму в выходных данных, чтобы убедиться, что компоненты пользовательского интерфейса настроены правильно.