【发布时间】:2019-04-12 11:21:58
【问题描述】:
我在闪亮应用的服务器功能中有以下代码。
要绘制每种类型的图表,我每次都需要调用 getPlotData() 函数。有什么办法可以避免它使应用程序更快?
功能
#This gets Sales data for selected client data
getPlotData <- reactive({
inpParam <<- input$noc
getSalesData(inpParam)
End_date <<- input$endDate
SalesClientData <<- GetSalesClientData()
WeeklySales <<- GetWeeklyData()
FortNightData <<- GetFortNightlyData()
EWS <<- GetEWSData()
MONTHLYSALES <<- GetMonthlyData()
wtSafetyRatio <<- round(as.numeric(crossprod(MONTHLYSALES$SafetyRatio,MONTHLYSALES$Weights)/sum(MONTHLYSALES$Weights)),2)
wtHealthScore <<- round(as.numeric(crossprod(MONTHLYSALES$HealthScore,MONTHLYSALES$Weights)/sum(MONTHLYSALES$Weights)),2)
wtPaymentScore <<- round(as.numeric(crossprod(MONTHLYSALES$PaymentScore,MONTHLYSALES$Weights)/sum(MONTHLYSALES$Weights)),2)
ROLLDATA <<- GetRollingData()
EARLY_TOPUP <<- GetEarlyTopUp()
})
#DPD Plots
output$DPDPLot<-renderPlotly({
getPlotData()
plot_ly(data=SalesClientData, x = ~Date, y = ~DPD, name='DPD', type='scatter', mode = 'lines') %>%
add_trace(y = ~CHECKNACHDPD, name = 'CHEQUE-NACH Payment', type='bar') %>%
add_trace(y = ~CHKNACHBounceDPD, name = 'CHEQUE-NACH Bounce', type='bar') %>%
layout(title= "DPD Pattern", legend = list(orientation = "h"))
})
#Sales Plot
output$SalesPlot<-renderPlotly({
getPlotData()
SalesDayWise = group_by(SalesClientData,Day)
SalesDayWise = summarize(SalesDayWise,TotalSales = sum(TotalPayRecvdAdj, na.rm=TRUE))
plot_ly(data=SalesDayWise, x = ~Day, y = ~TotalSales, name='Total Sales', type='bar') %>%
layout(title="Daywise Sales", legend = list(orientation = "h"))
})
【问题讨论】:
-
我认为您使用的
reactive表达式错误。请查看教程here。