Search code examples
rshinyplotlyreseteventdata

How to reset a plotly graph in R Shiny which is based on event data


In my example-code underneath one can click into the graph and a new graph is shown.So good, so well.

However, I want to reset the graph when someone clicks onto the reset-button at the left side. But it only sets back the input widgets at the moment.

As the deeper graphs are not linked to the input widgets anymore this does not work after one has cllicked into the graph on the right any more.

I did not manage to get achieve this despite many different trials.

Does anybody have an idea how to reset the graph to the start in each case when the button is pushed?

This is my code example:


library(shiny)
library(ggplot2)
library(ggthemes)
library(plotly)
library(shinythemes)
library(DT)

# Define UI
ui <- fluidPage(theme = shinytheme("flatly"),
                navbarPage(
                  "Lebenslagen-Ergebnisse 2021",
                  tabPanel("Grafik",
                           sidebarPanel(
                             checkboxGroupInput("Stichprobe",
                                                label = "Bitte wählen Sie die Stichprobe aus.", 
                                                choices = c("Bürger", "Unternehmen"), 
                                                selected = c("Bürger", "Unternehmen")
                                                ),
                             sliderInput("Jahr", "angezeigte Jahre", 2015, 2021, step = 2,
                                         c(2015,2021), 
                                         sep = "", 
                                         ticks = 0
                                         ),
                             shinyjs::useShinyjs(),    
                             id = "side-panel",
                             actionButton("reset_input", 
                                          "Zurücksetzen"
                                          )
                                        ), # sidebarPanel
                           
                           mainPanel(
                             h1("Zufriedenheit im Zeitverlauf"),
                             h2("Diagramm"),
                             shinyjs::useShinyjs(),    
                             id = "main-panel",                             
                             plotlyOutput(outputId = "Diagramm"),  
                             verbatimTextOutput("Auswahl"),   
                             verbatimTextOutput("Variable"),                              
                             h2("Daten"),
                             DT::dataTableOutput("mytable"),
                             tags$style(type="text/css",
                                        ".shiny-output-error { visibility: hidden; }",
                                        ".shiny-output-error:before { visibility: hidden; }"
                                        ),                             
                                    ) # mainPanel
                           
                  ), # Navbar 1, tabPanel
                  tabPanel("Info", "Hier könnte ein Infotext zur Seite stehen."),
                  
                ) # navbarPage
) # fluidPage


# Define server function  
server <- function(input, output, session) {
  
  whichgraph <- reactive({
                          Gruppe_Auswahl <- "keine"
                          if (!is.null(event_data("plotly_click")$customdata))
                          {Gruppe_Auswahl <- event_data("plotly_click")$customdata}
                          return(Gruppe_Auswahl)
                          })    
    
  observeEvent(input$reset_input, 
               {
                 shinyjs::reset("side-panel")   
               }
                )    
  

  data_r <- reactive ({
    if (whichgraph() == "keine")
    {    
      Stichprobe <- c("Bürger", "Bürger", "Bürger", "Bürger", "Unternehmen", "Unternehmen", "Unternehmen", "Unternehmen")
      Jahr <- c(2015, 2017, 2019, 2021, 2015, 2017, 2019, 2021)
      zufriedenheit <- c(1.1, 1.1, 1.2, 1.1, 0.9, 0.9, 1.1, 1.0)
      
      zufrzeit_insg <- data.frame (Stichprobe, Jahr, zufriedenheit)
      
      zufrzeit <- zufrzeit_insg    
      
      if (all(c("Bürger") %in% input$Stichprobe)) {
        zufrzeit <- zufrzeit_insg[Stichprobe == "Bürger",]
      }    
      if (all(c("Unternehmen") %in% input$Stichprobe)) {
        zufrzeit <- zufrzeit_insg[Stichprobe == "Unternehmen",]
      }    
      if (all(c("Bürger", "Unternehmen") %in% input$Stichprobe)) {
        zufrzeit <- zufrzeit_insg
      }       
      zufrzeit <- zufrzeit[which(Jahr >= input$Jahr[1] & Jahr <= input$Jahr[2]),]
      return(zufrzeit)
    }   
    else if (whichgraph() == "Bürger")
    {
      LL <- c("Alle Lebenslagen", "Altersarmut", "Arbeitslosigkeit", "Beantragung von Ausweisdokumenten",
              "Behinderung","Berufsausbildung", "Corona-Pandemie", "Ehrenamtliche Tätigkeit im Verein",
              "Eintritt in den Ruhestand", "Finanzielle Probleme", "Führerschein / Fahrzeugregistrierung",
              "Geburt eines Kindes", "Gesundheitliche Willensbekundung", "Heirat", "Immobilienerwerb",
              "Kinderbetreuung", "Längerfristige Krankheit", "Pflegebedürftigkeit", 
              "Scheidung / Aufhebung Lebenspartnerschaft", "Steuererklärung", "Studium",
              "Tod einer nahestehenden Person", "Umzug")
      zufriedenheit <- c(1.1, 0.9, 0.9, 1.5, 0.9, 1.2, 0.8, 1.2, 1.0, 0.7, 1.2, 1.2, 
                         1.5, 1.3, 1.0, 1.2, 1.3, 1.0, 0.8, 1.1, 1.1, 1.2, 1.3)
      color <- c("blue", "blue", "blue", "blue", "blue", "blue","blue", "blue", 
                 "blue", "black", "blue", "blue","blue","blue", "blue", "blue", 
                 "blue", "blue", "blue","blue", "blue","blue", "blue")
      zufr_ll <- data.frame (LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll)
      return(zufr_ll)      
    }
    else if (whichgraph() == "Unternehmen")
    {
      LL <- c("Alle Lebenslagen", "Ausbildung", "Import / Export", "Forschung & Entwicklung / Patent- und Markenschutz",
              "Gründung eines Unternehmens","Geschäftsaufgabe oder -übergabe", "Einstellen von Beschäftigten", 
              "Arbeitssicherheit und Gesundheitsschutz", "Beantragung von Corona-Hilfen", "Teilnahme an Ausschreibungsverfahren", 
              "Steuern und Finanzen", "Bau einer Betriebsstätte")
      zufriedenheit <- c(1.0, 1.4, 1.3, 1.2, 1.1, 1.1, 1.1, 1.1, 0.9, 0.8, 0.8, 0.7)
      color <- c("black", "green", "green", "green", "green", "green","green", "green", 
                 "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }
    else if (whichgraph() == "Gesundheitliche Willensbekundung")
    {
      Amt <- c("Durchschnitt","Notariat","Bundesnotarkammer","Betreuungsgericht")
      zufriedenheit <- c(1.5,1.5,1.5,1.1)
      color <- c("black","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }    
    else if (whichgraph() == "Längerfristige Krankheit")
    {
      Amt <- c("Durchschnitt","Rentenversicherung","Krankenkasse")
      zufriedenheit <- c(1.3,0.9,1.3)
      color <- c("black","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }        
    else if (whichgraph() == "Behinderung")
    {
      Amt <- c("Durchschnitt","Versorgungsamt","Straßenverkehrsbehörde","Krankenkasse","Kommunalverwaltung","Hauptzollamt","Agentur für Arbeit")
      zufriedenheit <- c(0.9,0.9,0.8,1,0.5,1.3,0.6)
      color <- c("black","blue","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }        
    else if (whichgraph() == "Pflegebedürftigkeit")
    {
      Amt <- c("Durchschnitt","Rentenversicherung","Krankenkasse","Kommunalverwaltung")
      zufriedenheit <- c(1,1.2,1,1.2)
      color <- c("black","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }       
    else if (whichgraph() == "Corona-Pandemie")
    {
      Amt <- c("Durchschnitt","Gesundheitsamt")
      zufriedenheit <- c(0.8,0.8)
      color <- c("black","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }       
    else if (whichgraph() == "Steuererklärung")
    {
      Amt <- c("Durchschnitt","Finanzamt")
      zufriedenheit <- c(1.1,1.1)
      color <- c("black","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }        
    else if (whichgraph() == "Altersarmut")
    {
      Amt <- c("Durchschnitt","Versorgungsamt","Rundfunkbeitragsservice","Amt für Soziales")
      zufriedenheit <- c(0.9,1,1,1,0.9)
      color <- c("black","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }          
    else if (whichgraph() == "Finanzielle Probleme")
    {
      Amt <- c("Durchschnitt","Wohngeldstelle","Rundfunkbeitragsservice","Jobcenter","Familienkasse","Amt für Soziales","Agentur für Arbeit")
      zufriedenheit <- c(0.7,0.9,0.9,0.5,0.9,0.8,0,6)
      color <- c("black","blue","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }       
    else if (whichgraph() == "Berufsausbildung")
    {
      Amt <- c("Durchschnitt","Krankenkasse","Kommunalverwaltung","Familienkasse","Agentur für Arbeit")
      zufriedenheit <- c(1.2,1.3,1,0.7,1)
      color <- c("black","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }           
    else if (whichgraph() == "Studium")
    {
      Amt <- c("Durchschnitt","Krankenkasse","Familienkasse","Bundesverwaltungsamt","BAföG-Amt")
      zufriedenheit <- c(1.1,1.3,1.1,1,0.7)
      color <- c("black","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }         
    else if (whichgraph() == "Arbeitslosigkeit")
    {
      Amt <- c("Durchschnitt","Rundfunkbeitragsservice","Jobcenter","Agentur für Arbeit")
      zufriedenheit <- c(0.9,1.1,0.7,0.9)
      color <- c("black","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }          
    else if (whichgraph() == "Eintritt in den Ruhestand")
    {
      Amt <- c("Durchschnitt","Unfallversicherung","Rentenversicherung","Krankenkasse","Amt für Soziales")
      zufriedenheit <- c(1,0.9,1,1.1,0.7)
      color <- c("black","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }           
    else if (whichgraph() == "Heirat")
    {
      Amt <- c("Durchschnitt","Standesamt","Krankenkasse","Kfz-Zulassungsstelle","Finanzamt")
      zufriedenheit <- c(1.3,1.3,1.4,1.2,1.1)
      color <- c("black","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }          
    else if (whichgraph() == "Scheidung / Aufhebung Lebenspartnerschaft")
    {
      Amt <- c("Durchschnitt","Rentenversicherung","Jugendamt","Finanzamt","Familienkasse","Familiengericht","Amtsgericht")
      zufriedenheit <- c(0.8,0.7,0.6,1,0.7,0.8,0.8)
      color <- c("black","blue","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }         
    else if (whichgraph() == "Geburt eines Kindes")
    {
      Amt <- c("Durchschnitt","Standesamt","Rentenversicherung","Krankenkasse","Jugendamt","Familienkasse","Elterngeldstelle")
      zufriedenheit <- c(1.2,1.3,0.7,1.4,1.2,1.1,1.1)
      color <- c("black","blue","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }
    else if (whichgraph() == "Kinderbetreuung")
    {
      Amt <- c("Durchschnitt","Schule","Kommunalverwaltung","Kinderkrippe","Kindergarten","Jugendamt","Amt für Soziales")
      zufriedenheit <- c(1.2,1.2,1,1.2,1.2,0.9,0.9)
      color <- c("black","blue","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }    
    else if (whichgraph() == "Ehrenamtliche Tätigkeit im Verein")
    {
      Amt <- c("Durchschnitt","Notariat","Landesbehörden: Fördermittel","Kommunalverwaltung","Gewerbe-/Ordnungsamt","Finanzamt","Amtsgericht")
      zufriedenheit <- c(1.2,1.4,1.2,1.2,1.1,1,1.3)
      color <- c("black","blue","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }    
    else if (whichgraph() == "Tod einer nahestehenden Person")
    {
      Amt <- c("Durchschnitt","Standesamt","Rentenversicherung","Nachlassgericht","Grundbuchamt","Finanzamt")
      zufriedenheit <- c(1.2,1.5,1.2,1.1,1.3,1.1)
      color <- c("black","blue","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }         
    else if (whichgraph() == "Beantragung von Ausweisdokumenten")
    {
      Amt <- c("Durchschnitt","Einwohnermeldeamt")
      zufriedenheit <- c(1.5,1.5)
      color <- c("black","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }         
    else if (whichgraph() == "Führerschein / Fahrzeugregistrierung")
    {
      Amt <- c("Durchschnitt","Kfz-Zulassungsstelle","Fahrerlaubnisbehörde")
      zufriedenheit <- c(1.2,1.3,1.1)
      color <- c("black","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }        
    else if (whichgraph() == "Immobilienerwerb")
    {
      Amt <- c("Durchschnitt","Notariat","KfW","Finanzamt","Bauaufsichtsbehörde")
      zufriedenheit <- c(1,1.3,1.2,1,0.4)
      color <- c("black","blue","blue","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }       
    else if (whichgraph() == "Umzug")
    {
      Amt <- c("Durchschnitt","Kfz-Zulassungsstelle","Einwohnermeldeamt")
      zufriedenheit <- c(1.3,1.1,1.3)
      color <- c("black","blue","blue")
      zufr_ll <- data.frame(Amt, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }      
    else if (whichgraph() == "Gründung eines Unternehmens")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }    
    else if (whichgraph() == "Bau einer Betriebsstätte")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }    
    else if (whichgraph() == "Teilnahme an Ausschreibungsverfahren")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Beantragung von Corona-Hilfen")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Steuern und Finanzen")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Arbeitssicherheit und Gesundheitsschutz")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Einstellen von Beschäftigten")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Forschung & Entwicklung / Patent- und Markenschutz")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Import / Export")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Ausbildung")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }   
    else if (whichgraph() == "Geschäftsaufgabe oder -übergabe")
    {
      Amt <- c("Durchschnitt","zuständige Kammer","Unfallversicherung","Landesbehörden","Gewerbeamt","Finanzamt","Branchenspezifische Aufsichtsbehörde","Amtsgericht")
      zufriedenheit <- c(1.1,1.1,1.1,0.8,1.1,1,1.1,1.1)      
      color <- c("black", "green", "green", "green", "green", "green", "green", "green")    
      zufr_ll <- data.frame(LL, zufriedenheit, color)
      zufr_ll <- zufr_ll[order(zufriedenheit),]
      attach(zufr_ll) 
      return(zufr_ll)
    }           
  })
  
  output$Diagramm <- renderPlotly({    
    
    if (all(c("Bürger") %in% input$Stichprobe)) {
      colorvalues <- ("blue")
    }    
    if (all(c("Unternehmen") %in% input$Stichprobe)) {
      colorvalues <- ("green")      
    }    
    if (all(c("Bürger", "Unternehmen") %in% input$Stichprobe)) {
      colorvalues <- c("blue", "green")
    }
    
    if (whichgraph() == "keine")
    {
      ggplotly(
        ggplot(
          if(!is.null(input$Stichprobe)) {
            data_r()
          } else{}, 
          aes(
            x=Jahr, 
            y=zufriedenheit, 
            group=Stichprobe,
            customdata = Stichprobe,
            text = paste(
              "Stichprobe: ", Stichprobe, "\n", "Jahr: ", Jahr, "\n", 
              "Mittlere Zufriedenheit: ", zufriedenheit, "\n",sep = ""
            )
          )
        ) +
          geom_line(
            aes(
              colour = Stichprobe
            ), 
            linetype=1, 
            size=1
          ) +
          scale_x_continuous(
            limits=c(input$Jahr[1],input$Jahr[2]),
            breaks = c(2015,2017,2019,2021)
          ) +       
          theme(legend.position = "bottom") + 
          scale_y_continuous(
            limits=c(-2,2)
          ) +
          scale_color_manual(name="Stichprobe",
                             values=colorvalues), 
        tooltip="text" 
      ) %>%
        config(modeBarButtonsToRemove = c("autoScale2d", "hoverClosestCartesian",
                                          "hoverCompareCartesian", "zoom","pan2d",
                                          "resetScale2d"))%>%
        config(displaylogo = FALSE) %>%
        layout(hovermode = "closest", hoverdistance = "-1")
    }  
    else if (whichgraph() == "Bürger")
    {
      p6 <- ggplot(data_r(), aes(x = reorder(LL, zufriedenheit), y=zufriedenheit, customdata = LL,
                                 text = paste("Lebenslage: ", LL, "\n", "Mittlere Zufriedenheit: ", 
                                              zufriedenheit, "\n", sep = ""))) +
        geom_bar(stat="identity", width = 0.3, color = color, fill= color) + 
        coord_flip()+ 
        scale_y_continuous(limits=c(-2,2,0.5)) +
        labs(y= "Mittlere Zufriedenheit", x = "Lebenslage") +
        theme(legend.position="none")
      
      # interaktive Grafik:
      ggplotly(p6, 
               tooltip = "text")  %>%
        config(modeBarButtonsToRemove = c("autoScale2d", "hoverClosestCartesian",
                                          "hoverCompareCartesian", "zoom","pan2d",
                                          "resetScale2d", "lasso2d", "select2d"))%>%
        config(displaylogo = FALSE) %>%
        layout(hovermode = "closest")   
    }
    
    else if (whichgraph() == "Unternehmen")
    {
      p6 <- ggplot(data_r(), aes(x = reorder(LL, zufriedenheit), y=zufriedenheit, customdata = LL,
                                 text = paste("Lebenslage: ", LL, "\n", "Mittlere Zufriedenheit: ", 
                                              zufriedenheit, "\n", sep = ""))) +
        geom_bar(stat="identity", width = 0.3, color = color, fill=color) + 
        coord_flip()+ 
        scale_y_continuous(limits=c(-2,2,0.5)) +
        labs(y= "Mittlere Zufriedenheit", x = "Lebenslage") +
        theme(legend.position="none")
      
      # interaktive Grafik:
      ggplotly(p6, 
               tooltip = "text")  %>%
        config(modeBarButtonsToRemove = c("autoScale2d", "hoverClosestCartesian",
                                          "hoverCompareCartesian", "zoom","pan2d",
                                          "resetScale2d", "lasso2d", "select2d"))%>%
        config(displaylogo = FALSE) %>%
        layout(hovermode = "closest")   
    }    
    
    else if (whichgraph() == "Gesundheitliche Willensbekundung" | whichgraph() == "Berufsausbildung" |
             whichgraph() == "Studium" | whichgraph() == "Arbeitslosigkeit" | whichgraph() == "Eintritt in den Ruhestand" |
             whichgraph() == "Heirat" | whichgraph() == "Scheidung / Aufhebung Lebenspartnerschaft" | whichgraph() == "Geburt eines Kindes" |
             whichgraph() == "Kinderbetreuung" | whichgraph() == "Ehrenamtliche Tätigkeit im Verein" | whichgraph() == "Tod eines nahen Angehörigen" |
             whichgraph() == "Beantragung von Ausweisdokumenten" | whichgraph() == "Führerschein / Fahrzeugregistrierung" | whichgraph() == "Immobilienerwerb" |
             whichgraph() == "Umzug" | whichgraph() == "Längerfristige Krankheit" | whichgraph() == "Behinderung" |
             whichgraph() == "Pflegebedürftigkeit" | whichgraph() == "Corona-Pandemie" | whichgraph() == "Steuererklärung" |
             whichgraph() == "Altersarmut" | whichgraph() == "Finanzielle Probleme" )
    {
      p6 <- ggplot(data_r(), aes(x = reorder(Amt, zufriedenheit), y=zufriedenheit, customdata = Amt,
                                 text = paste("Behörde: ", Amt, "\n", "Mittlere Zufriedenheit: ", 
                                              zufriedenheit, "\n", sep = ""))) +
        geom_bar(stat="identity", width = 0.3, color = color, fill= color) + 
        coord_flip()+ 
        scale_y_continuous(limits=c(-2,2,0.5)) +
        labs(y= "Mittlere Zufriedenheit", x = "Behörde") +
        theme(legend.position="none")
      
      # interaktive Grafik:
      ggplotly(p6, 
               tooltip = "text")  %>%
        config(modeBarButtonsToRemove = c("autoScale2d", "hoverClosestCartesian",
                                          "hoverCompareCartesian", "zoom","pan2d",
                                          "resetScale2d", "lasso2d", "select2d"))%>%
        config(displaylogo = FALSE) %>%
        layout(hovermode = "closest")   
    }    
  })
  
  
  output$Auswahl <- renderPrint({
                                event_data("plotly_click")$customdata
                                })    
  output$Variable <- renderPrint({
                                whichgraph()
                                 })      
                              
  
  output$mytable <- DT::renderDataTable(
                                        if(!is.null(input$Stichprobe)) {
                                                                       data_r()
                                                                       } 
                                        else{}, 
                                        extensions = c('Buttons', 'Responsive'),
                                        rownames = FALSE,
                                        options = list(dom = 'Bfrtip',
                                                       buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
                                                       ) 
                                        )    

} # server



# Create Shiny object
shinyApp(ui = ui, server = server)            



Solution

  • Wow, I have to give most of the credit for this answer to @ismirsehregal. I'm missing some really obvious things today. (Sheesh!)

    Alright, the solution to your problem is actually pretty simple.

    At the top of your UI, you'll add this little chunk of JS. I didn't add your entire UI here, just enough to see what I mean.

    # Define UI
    ui <- fluidPage(tags$script(HTML(
      "setTimeout(function(){
        $('#reset_input').click(function() { location.reload(); });
      }, 10)")),
      theme = shinytheme("flatly"),
    

    In your server, remove or comment out the event handler for the reset button.

    # observeEvent(input$reset_input, 
    #              {
    #                shinyjs::reset("side-panel")
    #              }
    # ) 
    

    That line of JQuery replaced this event. Now when you click to reset it refreshes the page. If there is more to the story and this won't work down the road, let me know. There are other alternatives.