简介
ggvis[1]是R的一个数据可视化包,它可以:
- 使用与ggplot2类似的语法描述数据图形;
- 创建丰富的交互式图形,在本地Rstudio或浏览器中使用这些图形;
- 利用shiny的基础结构发布交互式图形。
ggvis 与 ggplot2主要区别:
- 基本命名转换:
ggplot | ggvis |
geom | layer function |
stat | compute function |
aes | props |
+ | %>% |
- ggvis目前不支持分面;
- 使用ggvis而不添加任何层类似于qplot
这里先对包进行加载(可以直接使用instll.packages("")下载)
library(ggvis) library(dplyr)
静态图
1 散点图
使用layer_points()
绘制,其中内部参数都用默认值。注意这里ggvis(~wt, ~mpg)
比ggplot多了一个波浪线。
mtcars %>% ggvis(~wt, ~mpg) %>% layer_points()
如果要加拟合线,和ggplot语法很类似,再加一层layer_smooths()
。
mtcars %>% ggvis(~wt, ~mpg) %>% layer_points() %>% layer_smooths()
内部参数也很类似(se = TRUE
加入拟合区间),拟合方式使用"lm"方法。
mtcars %>% ggvis(~wt, ~mpg) %>% layer_points() %>% layer_model_predictions(model = "lm", se = TRUE)
2 分组的散点图
如果想要使用分组说明散点图,可以加入fill = ~factor(cyl)
或者group_by(cyl)
进行分布。
mtcars %>% ggvis(~wt, ~mpg) %>% layer_points(fill = ~factor(cyl))
如果想要预测每组数据拟合情况,可以使用ayer_model_predictions()
。
mtcars %>% ggvis(~wt, ~mpg, fill = ~factor(cyl)) %>% layer_points() %>% group_by(cyl) %>% layer_model_predictions(model = "lm")
3 柱状图
柱状图是使用layer_bars()
函数,内部参数包括width(设置柱子宽度)等。
head(pressure) pressure %>% ggvis(~temperature, ~pressure) %>% layer_bars(fill := "#ff8080")
pressure %>% ggvis(~temperature, ~pressure) %>% layer_bars(width = 15,fill := "#ff8080")
4 曲线图
使用layer_lines()
绘制曲线图,当然你可以和散点图合并,效果更好。
pressure %>% ggvis(~temperature, ~pressure) %>% layer_lines()
pressure %>% ggvis(~temperature, ~pressure) %>% layer_points(size := 50) %>% layer_lines()
5 直方图
使用layer_histograms()
绘制直方图,内部参数包括width(柱子宽度),boundary(两个箱子之间的边界),center(柱子中央为中心)等。
head(faithful) faithful %>% ggvis(~eruptions, fill := "#ff8080") %>% layer_histograms(width=0.25, boundary=0) %>% add_axis("x", title = "month") %>% add_axis("y", title = "count")
faithful %>% ggvis(~eruptions, fill := "#90bff9") %>% layer_histograms(width=0.25, center=0) %>% add_axis("x", title = "month") %>% add_axis("y", title = "count")
add_axis()可以设置坐标轴的名称等其他参数。
6 箱型图
使用layer_boxplots()
绘制箱型图,具体内部参数再次不做具体陈述。
mtcars %>% ggvis(~factor(cyl), ~mpg) %>% layer_boxplots(fill := "#90bff9")