Shiny

... zu anderer statistischer Software, zu Datenbanken und Programmiersprachen.

Moderatoren: EDi, jogo

retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Shiny

Beitrag von retep »

Hallo Edi,

vielen Dank für deine Hilfe und Geduld!

EDi hat geschrieben: Fr Apr 09, 2021 10:53 pm
Fehler in sliderInput(inputId = "Depth", "Select Min and Max", choices = unique(Data1$Depth), : unbenutztes Argument (choices = unique(Data1$Depth))


ist eigentlich eindeutig: sliderInput hat kein choices= Argument. Auch sehe ich nicht wo Data1 definiert ist. Kein reproduzierbares Beispiel...

Ich habe die Datei (Data1.txt) angehängt. Gleich beim posten meines Hilfegesuchs.

Warnung: Error in filter: Objekt 'Depth' nicht gefunden
Kein reproduzierbares Beispiel. Ich vermute du willst filter aus dem dplyr Paket nutzen, dass ich aber nirgends sehe. Ich hab mir angewöhnt Funktionen aus Paketen explizit zu adressieren: dplyr::filter

hier nochmal der komplette shiny code:

Code: Alles auswählen

library(shiny)
library(ggplot2)
library(tidyr)

ui <- fluidPage(
  plotOutput("my_depth_plot"),
  selectizeInput("elementInput", "Variable",
                 choices = unique(Data1$Element),  
                 selected="", multiple =TRUE),
  
  sliderInput(inputId = "Depth",
              "Select Min and Max", 
              min = 100,
              max=400, 
              value = 100)
)

server <- function(input, output) {
  
  my_depth_plot <- reactive({
    Data1 %>%
      filter(Depth >
               input$Depth)
  })
  
  output$my_depth_plot <-renderPlot ({
    
    ggplot(my_depth_plot ()) +
      aes_string(
        x="Depth",
        y="Value",
        color= input$Element) +
      geom_point()+geom_line()+
      coord_flip()+
      facet_wrap(. ~ Element, scales = 'free_x', nrow = 1)+
      scale_color_brewer(palette="Paired", guide = FALSE)+
      scale_x_reverse(limits = c(400, 100), 
                      breaks = seq(400, 100, by = -50))
    
  })
  
}

shinyApp(ui = ui, server = server)

Der code für das Beispiel wurde in meinem ersten Threat veröffentlicht! Data1 ist der Anhang als Textdatei!
Kann es auch daran liegen dass ich keinen x/y Plot machen will (im weitesten Sinn ist es ja trotzdem ein x/y Plot) - also der Datensatz im Breitformat vorliegt, stattdessen benutze ich das Lange Format um den Tiefenplot als Facet darzustellen. Und Shiny kennt sowas nicht? Kann das sein, dass Shiny nicht in der Lage ist Dateien im "Long Format zu verarbeiten und die Plots im Anschluss als Facets darzustellen?
Nein, nein nein. Das hat nichts mit shiny zu tun... Am besten schreibst du den code mal als skript/funktion mal ganz ohne shiny...
Das verstehe ich nicht ganz:"...als skript/ funktion mal ganz ohne shiny.....". ?

Nochmals vielen Dank für deine Geduld.

retep
Benutzeravatar
EDi
Beiträge: 1602
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Shiny

Beitrag von EDi »

Das verstehe ich nicht ganz:"...als skript/ funktion mal ganz ohne shiny.....". ?
Ja, Code schreiben der einliest, aufbereitet und den gewünschten plot generiert.
Der code für das Beispiel wurde in meinem ersten Threat veröffentlicht! Data1 ist der Anhang als Textdatei!
Hmm, hab ich Tomaten auf den Augen, oder wo wird das eingelesen?

Den Hinweis mit dplyr::filter hast du verstanden?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Shiny

Beitrag von retep »

Hallo Edi,

nun ja
Hmm, hab ich Tomaten auf den Augen, oder wo wird das eingelesen?
also wenn ich das richtig verstanden habe möchtest du dieses Skript ????

Code: Alles auswählen


library(ggplot2)
library(tidyverse)
Data1%>%
  select(Age, Depth, Element, Value)%>%
  filter (Element %in% c("TOC", "TS", "S1", "S2", "S3", "Tmax", "HI", "OI"))%>%
  ggplot(aes(x= Depth, y= Value, color = Element, na.rm = TRUE))+  
  geom_line()+ geom_point()+
  coord_flip()+
  scale_x_reverse(limits = c(400, 100), 
                  breaks = seq(400, 100, by = -50))+
  facet_wrap(. ~ Element, scales = 'free_x', nrow = 1)+
  scale_color_brewer(palette="Paired", guide = FALSE)+
  scale_y_continuous()+ 
  labs(title = "Depth plot",
       subtitle = "",
       x= "Depth [m]",
       tag = "")+
  theme_bw(base_size = 15)+
  theme(axis.text.x=element_text(size=rel(0.5)))+
  theme(axis.title.x=element_blank())
  
  
Ist das korrekt?????
Den Hinweis mit dplyr::filter hast du verstanden?
Nein, tut mir leid! Ich starte meine Grafiken oder Skripte immer, in dem ich die Libraries vorher einlese.

Nochmals vielen Dank für deine Geduld & Hilfe!
Dateianhänge
Data1.txt
(7.57 KiB) 366-mal heruntergeladen
Antworten