R: Μια διαδραστική γραφική παράσταση μιας συνάρτησης με ολισθητήρες σε plotly

ψήφοι
0

Για να σχεδιάσετε μια συνάρτηση με τις παραμέτρους του ενημερώνεται δυναμικά με ρυθμιστικά είναι εύκολο στην Ε χρησιμοποιώντας βασική πλοκή και το πακέτο «χειραγωγήσουν».
Εδώ είναι ένα παράδειγμα ενός ημιτονοειδούς κύματος με το πλάτος και τη συχνότητα της ελέγχεται από τις παραμέτρους Α και k, αντίστοιχα.

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

Διαδραστικό Ωστόσο, η βασική πλοκή δεν είναι τόσο πολύ ένα plotly ένα. Υπάρχει ένας απλός τρόπος για να το κάνετε σε plotly εκεί;

Plotly παρέχει παραδείγματα ρυθμιστικά στο χώρο του, αλλά ο κώδικας φαίνεται πολύ περίπλοκη για ένα τέτοιο απλό έργο. Αν plotly δεν παρέχει μία ή δύο τακτικών γραμμών για τα καθήκοντα αυτά, υπάρχουν και άλλοι τρόποι για να το κάνετε αυτό στον τομέα της Ε;

Δημοσιεύθηκε 07/11/2018 στις 23:51
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Εδώ είναι μια γρήγορη και βρώμικη λαμπερά εφαρμογή που κάνει αυτό βασίζεται σε ένα από τα παραδείγματα στην τεκμηρίωση και τρέχει καλά από RStudio. Πολλά ευκαιρία να καθαρίσει το κωδικό ειδικά στο renderPlot, αλλά αυτό θα σας δώσει ένα σημείο εκκίνησης.

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)

εισάγετε περιγραφή της εικόνας εδώ

Απαντήθηκε 08/11/2018 στις 03:55
πηγή χρήστη

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