ggvis包学习笔记之初识ggvis

什么是ggvis包?

ggvis包的目标是为探索性数据分析提供一个简单的方式来创建可交互图。ggvis与ggplot2
基于相似的底层理论,但是在表达上略有不同,而且添加了新的特性---图片可交互。ggvis
包纳入了shiny可交互编程的模型以及dplyr包数据转换的内容。

因ggvis包与ggplot2包有相似的底层理论,所以本笔记在介绍学习ggvis包的内容的时候,
都会与ggplot2包来作比较。

初识ggvis包?

ggvis包中创建图像的基本函数qvis(可能不再支持了)与ggvis
而ggplot2包中创建图像的基本函数qplotggplot

library(ggvis)
#等价于下面的部分:layer_points(ggvis(mtcars, x = ~wt, y = ~mpg))
mtcars %>%
  ggvis(x = ~mpg, y = ~disp) %>%
  layer_points()

ggvis包学习笔记之初识ggvis_第1张图片

library(ggplot2)
ggplot(mtcars, aes(x = mpg, y = disp)) + geom_point()

ggvis包学习笔记之初识ggvis_第2张图片

注:ggvis支持magrittr包中%>%符号的使用。

ggvis具体例子

例 1

library(dplyr)
mtcars %>%
  ggvis(x = ~mpg, y = ~disp) %>%
  mutate(disp = disp / 61.0237) %>%
  layer_points()

ggvis包学习笔记之初识ggvis_第3张图片

  • 解释:变量名称前面使用~表明我们不想随便使用mpg变量,而是我们想要使用数据集中的mpg变量。这是ggvis包中的常规形式:总是使用这种格式表示数据集中变量。

  • 方便起见,ggvis函数中x=y=可以省略。

  • 上面的例子整合了dplyr包的mutate函数对数据集中的disp进行处理,可见利用%>%符号的方便之处。或许你和我一样有疑问:为什么ggvis函数在mutate函数之前,那么ggvis函数使用的还是修改过的disp吗?下面的例子将两个函数位置颠倒,最终图形一致。该例子中虽然颠倒顺序最终的图形是一致的,但是相信我,后面有的例子颠倒顺序结果是不一样的,所以我的建议就是按照正常人的思路去使用%>%来串联数据处理与作图。因此本例子我个人(正常人)推荐后面这一种写法。

library(dplyr)
mtcars %>%
  mutate(disp = disp / 61.0237) %>%
  ggvis(x = ~mpg, y = ~disp) %>%
  layer_points()

ggvis包学习笔记之初识ggvis_第4张图片

ggplot2包作图命令如下:

library(dplyr)
temdata <- mtcars %>% mutate(disp = disp/61.0237)
ggplot(temdata, aes(mpg, disp))+
    geom_point()

ggvis包学习笔记之初识ggvis_第5张图片

例 2

添加其他变量到其他可视化特性中例如fill、stroke、size、shape。

mtcars %>% ggvis(~mpg, ~disp, stroke = ~vs) %>% layer_points()

ggvis包学习笔记之初识ggvis_第6张图片

ggplot(mtcars, aes(mpg, disp, colour = vs))+geom_point(shape=21, fill="black")

ggvis包学习笔记之初识ggvis_第7张图片

  • stroke: 画笔颜色

mtcars %>% ggvis(~mpg, ~disp, fill = ~vs) %>% layer_points()

ggvis包学习笔记之初识ggvis_第8张图片

ggplot(mtcars, aes(mpg, disp, colour = vs))+geom_point()

ggvis包学习笔记之初识ggvis_第9张图片

  • fill: 填充颜色

mtcars %>% ggvis(~mpg, ~disp, size = ~vs) %>% layer_points()

ggvis包学习笔记之初识ggvis_第10张图片

ggplot(mtcars, aes(mpg, disp, size = vs))+geom_point()

ggvis包学习笔记之初识ggvis_第11张图片

  • size: 大小

mtcars %>% ggvis(~mpg, ~disp, shape = ~factor(cyl)) %>% layer_points()

ggvis包学习笔记之初识ggvis_第12张图片

ggplot(mtcars, aes(mpg, disp, shape = factor(cyl)))+geom_point()

ggvis包学习笔记之初识ggvis_第13张图片

  • shape: 形状

这四个参数在不同的图形中是否都存在或者代表的图形属性都需要针对不同的图形来看,现在就慢慢通过例子来掌握吧。

例 3

如何在上面提到的特性参数中使用原始值?opacity特性参数

mtcars %>% ggvis(~wt, ~mpg, fill := "red", stroke := "black") %>% layer_points()

ggvis包学习笔记之初识ggvis_第14张图片

ggplot(mtcars, aes(wt, mpg))+geom_point(shape=21, fill="red", color="black")

ggvis包学习笔记之初识ggvis_第15张图片

  • 如果你想用一个混合的colour或者size,你可以使用:=代替=:=表示你想用一个原始的值而不是数据集中变量。

  • 如果不使用:=,而且你还使用了一个原始值,那么对不起,这个参数不会起作用,不信你就试一试吧。

mtcars %>% ggvis(~wt, ~mpg, size := 300, opacity := 0.7) %>% layer_points()

ggvis包学习笔记之初识ggvis_第16张图片

ggplot(mtcars, aes(wt, mpg))+geom_point(size=7, alpha=0.7)

ggvis包学习笔记之初识ggvis_第17张图片

  • opacity: 透明度

  • 如果将变量映射到opacity特性参数上需要注意,有一部分数据是显示不出来的,因为它们不透明度是0。

mtcars %>% ggvis(~wt, ~mpg, size := 300, opacity = ~cyl) %>% layer_points()

ggvis包学习笔记之初识ggvis_第18张图片

ggplot(mtcars, aes(wt, mpg, alpha=cyl))+geom_point(size=7)

ggvis包学习笔记之初识ggvis_第19张图片

本文主要内容来自:
http://ggvis.rstudio.com/ggvi...
http://ggvis.rstudio.com

你可能感兴趣的:(数据可视化,可视化,r,ggplot2)