2017-11-19 13 views
0

RStudioにスライダ付きのインタラクティブなグラフを描画する方法があるのでしょうか?私は直線をプロットしたいと思い、切片と勾配を変更するスライダーを作成したいと思います。 たとえば、thisのようにします。ここで、aとbは私が望むように自由に動くことができるスライダです。Rのインタラクティブグラフ、直線変更パラメータ

答えて

0

これは動作します:光沢の

#save this script as app.R 
library(shiny) 


ui <- fluidPage(

    # Application title 
    titlePanel("Linear Equation App"), 

    # Sidebar with a slider input for number of bins 
    sidebarLayout(
     sidebarPanel(
     sliderInput(inputId = "slope",label = "Slope:", 
        min = 0,max = 100,value = 0), 
     sliderInput(inputId = "intercept",label = "Intercept", 
        min = -100,max = 100,value = 0) 
    ), 


     mainPanel(
     plotOutput("lineplot") 
    ) 
    ) 
) 


server <- function(input, output) { 

    output$lineplot <- renderPlot({ 
     x <- seq(from = 0, to = 100, by = 0.1) 
     y <- x*input$slope + input$intercept 
     plot(x,y) 
     }) 
} 
shinyApp(ui = ui, server = server) 

スクリーンショット: はenter image description here

別のオプションは、光沢のあるアプリを作ることです。ここでは

library(manipulate) 
x <- seq(from = 0, to = 100, by = 0.1) 

manipulate(plot(x,slope*x+intercept), slope = slider(0, 100), 
      intercept = slider(-100,100)) 

プロット出力のスクリーンショットですアプリ。 enter image description here

0

ここでは、shiny + ggplot2の簡単な例を示します。 y1 = mx1 + bを使用してスライダからの入力に基づいてx1 = 1、x2 = 2、およびyが計算される線を作成するのに十分なほど簡単です。 y2 = m×2 + b。

library(ggplot2) 
library(shiny) 
ui <- fluidPage(
strong("This is an interactive line"), 
sliderInput("slope", "Define slope:", min = -100, max = 100, value = 0, step = 0.01), 
sliderInput("intercept", "Define intercept:", min = -10000, max = 10000, value = 0, step = 1), 
plotOutput("linePlot")) 

server <- function(input, output) { 
output$linePlot <- renderPlot({ 
    ggplot(mapping = aes(x = c(1, 2), 
         y = c(input$slope*1+input$intercept, input$slope*2+input$intercept))) + 
    geom_line() 
}) 
    } 
shinyApp(ui, server)