R之ggvis學習筆記


官網:http://ggvis.rstudio.com/

ggvis是R的一個數據可視化包,它可以:

  • 聲明性地使用與ggplot2類似的語法描述數據圖形;
  • 創建豐富的交互式圖形,在本地Rstudio或瀏覽器中使用這些圖形;
  • 利用shiny的基礎結構發布可從任何瀏覽器(在公司內部或向全世界)使用的交互式圖形。

目標是將R的優點(比如你能想到的所有建模功能)和web的優點(每個人都有一個web瀏覽器)結合起來。數據操作和轉換是在R中完成的,圖形是在web瀏覽器中使用Vega呈現的。對於RStudio用戶,ggvis圖形顯示在查看器面板中,這是可能的,因為RStudio是一個web瀏覽器。

1. 入門

library(ggvis)
library(dplyr)
mtcars %>% 
  ggvis(~wt, ~mpg) %>%
  layer_points(fill = ~factor(cyl), 
               size := 25, shape := "diamond", 
               stroke := "red") %>% 
  group_by(cyl) %>%
  layer_model_predictions(model = "lm", se = TRUE)

ggvis VS ggplot2主要區別:http://ggvis.rstudio.com/ggplot2.html

  • ggplot→ggvis
  • geom→layer function
  • stat→compute function
  • aes→props
  • +→%>%

  • ggvis目前不支持分面;
  • 使用ggvis而不添加任何層類似於qplot。

2. 交互

動態輸入:

mtcars %>% 
  ggvis(~wt, ~mpg, 
    size := input_slider(10, 100),
    opacity := input_slider(0, 1)
  ) %>% 
  layer_points()

鼠標提示:

mtcars %>% ggvis(~wt, ~mpg) %>% 
  layer_points() %>% 
  add_tooltip(function(df) df$wt)

在Shiny中使用:

# ui.R
library(shiny)

# Define UI for miles per gallon application
shinyUI(sidebarLayout(
  sidebarPanel(
    sliderInput("size", "Area", 10, 1000, 500)
  ),
  mainPanel(
    uiOutput("ggvis_ui"),
    ggvisOutput("ggvis")
  )
))
# server.R
library(shiny)
library(ggvis)
library(dplyr)
mpgData <- mtcars
mpgData$am <- factor(mpgData$am, labels = c("Automatic", "Manual"))
# Define server logic required to plot various variables against mpg
shinyServer(function(input, output) {
  input_size <- reactive(input$size)
  
  mtcars %>% 
    ggvis(~disp, ~mpg, size := input_size) %>%
    layer_points() %>%
    bind_shiny("ggvis", "ggvis_ui")
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM