1

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)            


ismirsehregal
  • 30,045
  • 5
  • 31
  • 78
shinyuser
  • 13
  • 3
  • 2
    Your example code is far away from being minimal (> 600 lines). Please see [this](https://mastering-shiny.org/action-workflow.html#making-a-minimal-reprex) and condense it down to your actual issue. – ismirsehregal Nov 09 '22 at 12:25
  • sry, I shortened it, to the first two layers in the graph – shinyuser Nov 09 '22 at 13:27
  • I am going to guess that when you reduced the code in your question, something went wrong. When I run your code, I only get one graph. The graph is reset by the reset button. Your question mentions two graphs. I know you were asked to reduce the amount of code you provided. You're at 233 with an overabundance of whitespace (nice and readable). I think you're going to have to add some of that code back in. (I could replicate what you described, but it won't help if you took an entirely different approach.) – Kat Nov 10 '22 at 14:49
  • 1
    @Kat if you are willing to deal with the initial code, you can view it in the edit history. – ismirsehregal Nov 10 '22 at 14:53
  • Now why didn't I think of that? Sheesh, thanks @ismirsehregal – Kat Nov 10 '22 at 15:06
  • Alright, I've gone all through every version of the question. There are no versions that show more than one graph. I see that you changed all the strings to English. Your question has to be in English for SO, but your strings don't. I really would like a reason to include the German for the English term 'speed limit,' because it's my favorite German word...but it seems really out of place to write Geschwíndigkeitsbegrenzung, don't you think? – Kat Nov 10 '22 at 15:29
  • @Kat I rolled back the edits - it's a drilldown. – ismirsehregal Nov 10 '22 at 16:45
  • Wow, I totally missed that. Drilldown..sigh. Alright. I'm going to look at it a bit closer now. I can definitely see that reset's not helping out.... – Kat Nov 10 '22 at 18:15

1 Answers1

0

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.

Kat
  • 15,669
  • 3
  • 18
  • 51
  • Wow! This is exactly what I was looking for. And the solution is even very short. :-) Thank you so much @Kat and @ismirsehregal! – shinyuser Nov 11 '22 at 09:15