Skip to content

Commit 7be8d62

Browse files
authored
Merge pull request #136 from cmu-delphi/forecastdate-tooltip-label
Forecastdate tooltip label
2 parents 484d8a1 + a299187 commit 7be8d62

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

dashboard/app.R

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,8 @@ server <- function(input, output, session) {
267267
filter(ahead %in% horizon) %>%
268268
filter(forecaster %in% forecasters)
269269

270-
filteredScoreDf <- scoreDf %>% rename(Forecaster = forecaster, Week_End_Date = target_end_date)
270+
filteredScoreDf <- scoreDf %>% rename(Forecaster = forecaster, Forecast_Date = forecast_date,
271+
Week_End_Date = target_end_date)
271272

272273
if (scoreType == "wis" || scoreType == "sharpness") {
273274
# Only show WIS or Sharpness for forecasts that have all intervals
@@ -315,14 +316,14 @@ server <- function(input, output, session) {
315316
if (scoreType == "coverage") {
316317
aggregate = "Averaged"
317318
filteredScoreDf = filteredScoreDf %>%
318-
group_by(Forecaster, Week_End_Date, ahead) %>%
319+
group_by(Forecaster, Forecast_Date, Week_End_Date, ahead) %>%
319320
summarize(Score = sum(Score)/length(locationsIntersect), actual = sum(actual))
320321
output$renderAggregateText = renderText(paste(aggregateText," Some forecasters may not have any data for the coverage interval chosen. Locations inlcuded: "))
321322
}
322323
else {
323324
aggregate = "Totaled"
324325
filteredScoreDf = filteredScoreDf %>%
325-
group_by(Forecaster, Week_End_Date, ahead) %>%
326+
group_by(Forecaster, Forecast_Date, Week_End_Date, ahead) %>%
326327
summarize(Score = sum(Score), actual = sum(actual))
327328
output$renderAggregateText = renderText(paste(aggregateText, " Locations included: "))
328329
}
@@ -342,7 +343,7 @@ server <- function(input, output, session) {
342343
# Not totaling over all locations
343344
} else {
344345
filteredScoreDf <- filteredScoreDf %>% filter(geo_value == tolower(loc)) %>%
345-
group_by(Forecaster, Week_End_Date, ahead) %>%
346+
group_by(Forecaster, Forecast_Date, Week_End_Date, ahead) %>%
346347
summarize(Score = Score, actual = actual)
347348
locationSubtitleText = paste0(', Location: ', input$location)
348349
output$renderAggregateText = renderText("")
@@ -359,7 +360,7 @@ server <- function(input, output, session) {
359360
})
360361

361362
# Format and transform data
362-
filteredScoreDf = filteredScoreDf[c("Forecaster", "Week_End_Date", "Score", "ahead")]
363+
filteredScoreDf = filteredScoreDf[c("Forecaster", "Forecast_Date", "Week_End_Date", "Score", "ahead")]
363364
filteredScoreDf = filteredScoreDf %>% mutate(across(where(is.numeric), ~ round(., 2)))
364365
if (scoreType != 'coverage') {
365366
if (scaleByBaseline) {
@@ -368,8 +369,8 @@ server <- function(input, output, session) {
368369
# Scaling score by baseline forecaster
369370
filteredScoreDfMerged$Score.x = filteredScoreDfMerged$Score.x / filteredScoreDfMerged$Score.y
370371
filteredScoreDf = filteredScoreDfMerged %>%
371-
rename(Forecaster = Forecaster.x, Score = Score.x) %>%
372-
select(Forecaster, Week_End_Date, ahead, Score)
372+
rename(Forecaster = Forecaster.x, Score = Score.x, Forecast_Date = Forecast_Date.x) %>%
373+
select(Forecaster, Forecast_Date, Week_End_Date, ahead, Score)
373374
}
374375
if (logScale) {
375376
filteredScoreDf$Score = log10(filteredScoreDf$Score)
@@ -384,7 +385,7 @@ server <- function(input, output, session) {
384385
# Fill gaps so there are line breaks on weeks without data
385386
filteredScoreDf = filteredScoreDf %>%
386387
as_tsibble(key = c(Forecaster, ahead), index = Week_End_Date) %>%
387-
group_by(Forecaster, ahead) %>%
388+
group_by(Forecaster, Forecast_Date, ahead) %>%
388389
fill_gaps(.full = TRUE)
389390

390391
filteredScoreDf$ahead = factor(filteredScoreDf$ahead, levels = c(1, 2, 3, 4),
@@ -395,7 +396,7 @@ server <- function(input, output, session) {
395396

396397
p = ggplot(
397398
filteredScoreDf,
398-
aes(x = Week_End_Date, y = Score, color = Forecaster, shape = Forecaster)
399+
aes(x = Week_End_Date, y = Score, color = Forecaster, shape = Forecaster, label = Forecast_Date)
399400
) +
400401
geom_line() +
401402
geom_point(size=2) +
@@ -417,7 +418,7 @@ server <- function(input, output, session) {
417418
}
418419
plotHeight = 550 + (length(horizon)-1)*100
419420
finalPlot <-
420-
ggplotly(p,tooltip = c("x", "y", "shape")) %>%
421+
ggplotly(p, tooltip = c("x", "y", "shape", "label")) %>%
421422
layout(
422423
height = plotHeight,
423424
legend = list(orientation = "h", y = -0.1),

0 commit comments

Comments
 (0)