zoukankan      html  css  js  c++  java
  • 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")
    })

  • 相关阅读:
    勿忘心安
    设△ABC的内角A,B,C,所对的边分别为a,b,c,且acosB-bcosA=3/5c,则tan(A-B)的最大值为
    P1011 车站
    第一天
    P1134 阶乘问题
    P3152 正整数序列
    某数论
    DO YOU WANNA BUILD A SNOW MAN ?
    luogu P1579 哥德巴赫猜想(升级版)
    紫书 习题 10-25 UVa 1575 (有重复元素的全排列+暴搜)
  • 原文地址:https://www.cnblogs.com/dingdangsunny/p/12518042.html
Copyright © 2011-2022 走看看