GRAFICADOR DE FUNCIONES

Intro

En este post, veremos como crear una aplicación web en shiny que genere gráficos de funciones. Si no conoces que es shiny, mira la presentación realizada por Manuel Oviedo aquí

Inicio

Los paquetes necesarios son:

library(shiny)
library(ggplot2)

Interfaz (UI)

En esta parte de la aplicación se tiene tres widget, el primero un textInput() donde se ingresa la función a evaluar y dos numericInput que definen el recorido de la variable x.

ui <- shinyUI( 
  fluidPage( sidebarPanel( 
    # Titulo de la app
    titlePanel("Graficador de funciones"),
    # ingreso de la funcion 
    textInput("funcion", "Ingrese la función", "sin(x)"),
    #ingreso de 
    numericInput("from", "Desde:", 0, min = -100, max = 100) ,
    numericInput("to", "Hasta:", 10, min = -100, max = 100) ),
      mainPanel(
        plotOutput("distPlot")
      )
    )
  )

Server

En esta parte de la aplicación se evalua la función ingresada en el textInput, para poder realizar esta operación se utiliza la función parse(), la cual permite transformar el string ingresado en una expresión.

server <- function(input, output,session) { 
  
  datos<-reactive( { 
   x<-seq(input$from,input$to,by = 0.01)
   y<- eval(parse(text = paste(input$funcion)))
   datos<-data.frame(x,y)
  })
  output$distPlot <- renderPlot({
    ggplot(datos(),aes(x,y))+
      geom_line(colour='red')
  })
}

El resultado final es:

Avatar
Byron Vinueza
Estadístico - Apasionado por los datos