diff --git a/R/mod_figures.R b/R/mod_figures.R
index 31b5eaf04..6973ab9b6 100644
--- a/R/mod_figures.R
+++ b/R/mod_figures.R
@@ -83,7 +83,7 @@ mod_figures_server <- function(id, tadat){
# this line adds a new column to the dataset of concatenated values of all of the columns selected by the user in the drop down above.
depthcols = names(tadat$raw)[grepl("DepthHeightMeasure",names(tadat$raw))]
depthcols = depthcols[grepl("TADA.",depthcols)]
- selcols = c("OrganizationFormalName", "ResultIdentifier", "group", "groupname", "MonitoringLocationIdentifier", "MonitoringLocationName", "MonitoringLocationTypeName", "TADA.LatitudeMeasure", "TADA.LongitudeMeasure", "TADA.ResultMeasureValue", "TADA.ResultMeasure.MeasureUnitCode", "ActivityRelativeDepthName", "ActivityStartDate", "ActivityStartDateTime", depthcols)
+ selcols = c("OrganizationFormalName", "ResultIdentifier", "groupname", "MonitoringLocationIdentifier", "MonitoringLocationName", "MonitoringLocationTypeName", "TADA.LatitudeMeasure", "TADA.LongitudeMeasure", "TADA.ResultMeasureValue", "TADA.ResultMeasure.MeasureUnitCode", "ActivityRelativeDepthName", "ActivityStartDate", "ActivityStartDateTime", depthcols)
react$dat = tadat$raw %>%
dplyr::filter(TADA.Remove == FALSE, !is.na(TADA.ResultMeasureValue)) %>%
@@ -97,7 +97,7 @@ mod_figures_server <- function(id, tadat){
output$mapplotgroup <- shiny::renderUI({ # this companion to the uiOutput in the UI appears when react$done exists
# req(react$done)
# this line gets all the unique concatenated group values from react$dat
- if("group"%in%names(react$dat)){
+ if("groupname"%in%names(react$dat)){
choices <- unique(react$dat$groupname)
shiny::fluidRow(
htmltools::h3("2. Pick Groups to Map and Plot"),
@@ -122,7 +122,7 @@ mod_figures_server <- function(id, tadat){
shiny::observeEvent(input$mapplotgroupgo,{
react$groups = input$mapplotgroup
groupdata = subset(react$dat, react$dat$groupname%in%c(react$groups))
- react$plotdata = groupdata
+ react$plotdataset = groupdata
react$mapdata = groupdata %>%
dplyr::group_by(OrganizationFormalName, MonitoringLocationIdentifier, MonitoringLocationName, MonitoringLocationTypeName, TADA.LatitudeMeasure, TADA.LongitudeMeasure) %>%
dplyr::summarise(Ncount = length(ResultIdentifier), MeanV = mean(TADA.ResultMeasureValue), GroupID = paste0(unique(sort(groupname)), collapse = ";"), DateRange = paste0(min(lubridate::year(as.Date(ActivityStartDate, "%Y-%m-%d")))," - ", max(lubridate::year(as.Date(ActivityStartDate, "%Y-%m-%d")))))
@@ -202,7 +202,7 @@ mod_figures_server <- function(id, tadat){
sites = c("All sites", unique(react$mapdata$MonitoringLocationIdentifier))
shiny::fluidRow(
htmltools::h3("3. Select Specific Sites (Optional)"),
- htmltools::HTML("Use the drop down to pick the sites you'd like to include in the plots below and then click 'Generate Plots'. Defaults to all sites in the dataset."),
+ htmltools::HTML(paste0("Use the drop down to pick the sites you'd like to include in the plots below and then click 'Generate Plots'. Defaults to all sites in the dataset. NOTE: Currently, the single-characteristic scatterplot, histogram, and boxplot show the first characteristic from the drop down above the map: ", react$groups[1],".")),
htmltools::br(),
column(6, # column containing drop down menu for all grouping column combinations
shiny::selectizeInput(ns("selsites1"),"Select sites",choices = sites, selected = sites[1], multiple = TRUE, width = "100%")),
@@ -215,10 +215,18 @@ mod_figures_server <- function(id, tadat){
# when the Go button is pushed to generate plots, this ensure the plot data is filtered to the selected sites (or all sites)
shiny::observeEvent(input$selsitesgo,{
if(all(input$selsites1=="All sites")){
- react$plotdata = subset(react$dat, react$dat$groupname%in%c(react$groups))
+ react$plotdata = react$plotdataset
}else{
- react$plotdata = react$plotdata %>% dplyr::filter(MonitoringLocationIdentifier%in%input$selsites1)
- }
+ plotdata = react$plotdataset %>% dplyr::filter(MonitoringLocationIdentifier%in%input$selsites1)
+ if(!react$groups[1]%in%plotdata$groupname){
+ shiny::showModal(shiny::modalDialog(
+ title = "Whoops!",
+ paste0("You selected a site/sites where ", react$groups[1], " was not sampled. Please use the legend in the map above to select site(s) where ", react$groups[1], "was sampled.")
+ ))
+ }else{
+ react$plotdata = plotdata
+ }
+ }
})
# benchmark widgets
@@ -254,7 +262,7 @@ mod_figures_server <- function(id, tadat){
# plotly scatter plot
output$scatter <- plotly::renderPlotly({
shiny::req(react$plotdata)
- suppressWarnings(TADA::TADA_Scatterplot(subset(react$plotdata, react$plotdata$groupname==react$groups[1]), id_cols = "group")) %>%
+ suppressWarnings(TADA::TADA_Scatterplot(subset(react$plotdata, react$plotdata$groupname==react$groups[1]), id_cols = "groupname")) %>%
plotly::layout(shapes = list(hline(y=input$benchmark1, color = "red"),
hline(y=input$benchmark2, color = "orange")))
@@ -263,13 +271,13 @@ mod_figures_server <- function(id, tadat){
# plotly boxplot
output$boxplot <- plotly::renderPlotly({
shiny::req(react$plotdata)
- suppressWarnings(TADA::TADA_Boxplot(subset(react$plotdata, react$plotdata$groupname==react$groups[1]), id_cols = "group"))
+ suppressWarnings(TADA::TADA_Boxplot(subset(react$plotdata, react$plotdata$groupname==react$groups[1]), id_cols = "groupname"))
})
# plotly histogram
output$histogram <- plotly::renderPlotly({
shiny::req(react$plotdata)
- suppressWarnings(TADA::TADA_Histogram(subset(react$plotdata, react$plotdata$groupname==react$groups[1]), id_cols = "group"))
+ suppressWarnings(TADA::TADA_Histogram(subset(react$plotdata, react$plotdata$groupname==react$groups[1]), id_cols = "groupname"))
})
# dynamically show/hide two-char scatter
@@ -286,7 +294,7 @@ mod_figures_server <- function(id, tadat){
output$scatter2 <- plotly::renderPlotly({
shiny::req(react$plotdata)
if(length(unique(react$plotdata$groupname))>1){
- suppressWarnings(TADA::TADA_TwoCharacteristicScatterplot(react$plotdata, id_col = "group", groups = unique(react$plotdata$group)))
+ suppressWarnings(TADA::TADA_TwoCharacteristicScatterplot(react$plotdata, id_col = "groupname", groups = unique(react$plotdata$groupname)))
}
})