R: Eine interaktive Graphen einer Funktion mit Schiebern in plotly

stimmen
0

Zum Plotten eine Funktion mit seinen Parametern dynamisch über Gleitstücke aktualisiert ist leicht in R unter Verwendung von Grundstück und ‚manipulieren‘ -Paket.
Hier ist ein Beispiel einer Sinuswelle mit der Amplitude und Frequenz durch die Parameter A und k gesteuert werden, respectively.

library(manipulate)
manipulate(plot(x, A*sin(k*x)), A = slider(1,3), k = slider(1,10))

Interaktive Allerdings ist die grundlegende Handlung nicht so recht ein plotly ein. Gibt es eine einfache Möglichkeit, es in plotly zu tun?

Plotly liefert Beispiele von Schiebern auf seiner Website, aber der Code scheint zu komplex für eine so einfache Aufgabe. Wenn plotly nicht ein oder zwei Liner für solche Aufgaben zur Verfügung stellt, gibt es andere Möglichkeiten , um in R zu tun?

Veröffentlicht am 07/11/2018 um 23:51
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Hier ist eine schnelle und schmutzige glänzend Anwendung , die es auf einem der Beispiele in der Dokumentation basiert tut und läuft gut von RStudio. Viel Gelegenheit reinigen Sie den Code vor allem in der nach oben renderPlot, aber dies wird Ihnen einen Ausgangspunkt.

library(shiny)
library(shinydashboard)
library(ggplot2)

data <-  data.frame(x=c(1,2,3,4),y=c(10,11,12,13))
ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(sliderInput("sliderA","A", min=1, max=3, step=0.5, value=1),
               sliderInput("sliderK","K", min=1, max=10, step=1, value=1)),
  dashboardBody(
    fluidRow(column(6,plotOutput('waveplot')))
  ))

server <- function(input, output, session) { 
  output$waveplot <- renderPlot({
    x <- seq(0,10,0.1)
    yfxn <- function(x) { input$sliderA*sin(input$sliderK*x) }
    y <- yfxn(x)
    df <- data.frame(x,y)
    ggplot(df,aes_string(x=x,y=y))+geom_point(size=2)+geom_line()+ 
         scale_x_continuous()
  })
}

shinyApp(ui, server)

Geben Sie hier image description

Beantwortet am 08/11/2018 um 03:55
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more