SHINYについて 黄研究室4年 小林賢哉 SHINYとは • 2012年11月に初登場 • インタラクティブなWebアプリケーションを Rで手軽に作れるRのライブラリ サンプル • http://shiny.rstudio.com/gallery/kmeansexample.html • 他にも色々見たい場合 http://shiny.rstudio.com/gallery/ 作ってみよう!!! • Rstudioを起動 • 「New Project」→「New Directory」 →「Shiny Web Application」 • 名前は適当で、「Create Project」 • 既にコードは書かれてるので起動してみよう!!! 解説:ファイル • Server.R →パソコンで処理する部分。 出力に関することはこちらに • Ui.R →インターフェースのレイアウトを調整する。 ファイル名はこのままでないと動かない この2つがあって初めて動く 解説:レイアウト Ui.R → shinyUI(fluidPage( ← レイアウトの設定 他にも色々あるよ!!! http://shiny.rstudio.com/articles/layout-guide.html 解説:レイアウト titlePanel sidebarPanel mainPanel 解説:ソースコード(ui.R) • shinyUI(fluidPage( • titlePanel("Old Faithful Geyser Data") • • • • • • • • • • • • • ページの設定 , sidebarLayout( sidebarPanel( sliderInput(“bins”, 引数 “Number of bins:”, ラベル min = 1, 最小の値 max = 50, 最大値 value = 30) 最初の値 ) , mainPanel( plotOutput("distPlot") ) ) )) titlePanel ()の中で、次に行く時は、 「,」を忘れない sidebarPanel スライドバーのイン プットについて mainPanel 出力について書いている 解説:ソースコード(server.R) shinyServer(function(input, output) { Render*→リアルタイムな出力に対して ウィジェットの値が変わった 時、実行される。 output$distPlot <- renderPlot({ Output$*→ui.Rで書いたものに対応 x <- faithful[, 2] bins <- seq(min(x), max(x), length.out = input$bins + 1) hist(x, breaks = bins, col = 'darkgray', border = 'white') }) }) Input$*→ウィジェットの値に対応 R言語を普通に書き込める!!! 出力について: ヒストグラムについて 書いている つまりぃ・・・ server.R Ui.R • shinyUI(fluidPage( • titlePanel("Old Faithful Geyser Data") • • sidebarLayout( sidebarPanel( sliderInput(" ", “Number of bins:”, min = 1, max = 50, value = 30) • • • • • , bins • • • • • • shinyServer(function(input, output) { ) , mainPanel( plotOutput("distPlot") ) ) )) distPlot <renderPlot({ output$ x <- faithful[, 2] bins <- seq(min(x), max(x), length.out = input$bins + 1) hist(x, breaks = bins, col = 'darkgray', border = 'white') }) }) もっと色々正確に知りたい!! インターフェースについて http://qiita.com/hoxo_m/items/8a 138429d8d995440020 ウィジェットについて http://qiita.com/hoxo_m/items/8e 84eb67c44afebe4d24 出力について http://qiita.com/hoxo_m/items/50 c6541ad5a475a6736b 問題 • このようなアプリケーションをつくれ • 「倍の数字」・「気分」は、ウィジェットによって、 リアルタイムに変更される。 ヒント とはいいません!!! スライドに書かれてない事は添付したURLの内容を参考に!!! 分からないことがあったら聞いてください。 答えられる範囲で答えます。 終わった人は・・・・応用!!! • 今までのプロジェクトで行った分析をWebアプ リケーションにしてみよう!!! Server.R # This is the server logic for a Shiny web application. # You can find out more about building applications with Shiny here: # # http://shiny.rstudio.com # library(shiny) shinyServer(function(input, output) { output$text <- renderText({ paste("今の自分の気分はいつもより", input$bins ,"倍" , input$radio) }) }) ui.R # This is the user-interface definition of a Shiny web application. # You can find out more about building applications with Shiny here: # # http://shiny.rstudio.com # library(shiny) shinyUI(fluidPage( # Application title titlePanel("11月6日黄プロジェクト問題"), # Sidebar with a slider input for number of bins sidebarLayout( sidebarPanel( sliderInput("bins", "何倍?", min = 100, max = 1000, value = 500), radioButtons("radio", label = h3("気分は?"), choices = list("最高" = "最高", "早く帰りたい" = "早く帰りたい", "もう授業終われ" = "もう授業終われ"),selected = "最高") ), ui.R # Show a plot of the generated distribution mainPanel( textOutput("text") ) ) ))
© Copyright 2024 ExpyDoc