数据可视化—如何利用”奶牛“,把图组合起来

浏览: 1660

作者:小橙子

来源:小橙子学数据分析

今天要给大家介绍的是cowplot包(作者:Claus O. Wilke),针对ggplot2的功能扩展包。能把多个ggplot2的图,组合起来

 比如利用cowplot包,把"mpg"的车辆信息,根据"整体"与"drv",按照"总-分"的逻辑,显示在同一张图中:

1library(ggplot2)
2library(cowplot) #奶牛画图包
3library(ggthemes) #ggplot中的主题包,囊括了很多经典图表形式,比如经济学人、538、华尔街等等
4
5p <-  ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl)))+geom_point() + theme_economist() #利用了经济学人的主题
6q <-  ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl)))+geom_point() + facet_grid(drv ~ .) + theme_economist()
7
8plot_grid(p, q,labels= c('A', 'B'), label_size = 12,label_colour = ("blue"))  

组合的形式,同时也支持"纵向"排列

1plot_grid(p, q,labels= c('A''B'), label_size = 12,label_colour = ("blue"),  align = "v",ncol = 1)

同时也支持"3个图"的组合形式

 1library(ggplot2)
2library(cowplot)
3library(ggthemes)
4
5p <-  ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl)))+geom_point() + 
6      theme_economist(base_family = "myfonts")
7q <-  ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl)))+geom_point() + 
8      facet_grid(drv ~ .) + theme_economist(base_family = "myfonts")
9r <-  ggplot(mpg, aes(x = cty) )+geom_bar(fill = "skyblue")+ theme_economist()
10
11bottom_row <- plot_grid(p, q,labels= c('A''B'), label_size = 12,label_colour = ("blue"),  align = "h")
12plot_grid(r, bottom_row, labels = c('A'''), ncol = 1, rel_heights = c(11.2),label_colour = ("blue"))

同时也支持"子图"的组合形式

1library(viridis) 
2ggdraw() +
3  draw_plot(p + theme(legend.justification = "bottom"), 0011) +
4  draw_plot(r + scale_color_viridis(discrete = TRUE) + 
5              theme(legend.justification = "top"), 0.50.10.50.4) +
6  draw_plot_label(c("A""B"), c(00.55), c(10.5), size = 15)

cowplot也支持"水印"功能

1ggdraw(r) + 
2  draw_plot_label("A", size = 14) + 
3  draw_label("小橙子学数据分析", angle = 45, size = 60, alpha = .2)

cowplot也支持"图与背景的重叠"功能

1library(magick)
2p <-   ggplot(mpg, aes(x=hwy, group = cyl , fill = factor(cyl) )) + geom_density(alpha = 0.5)
3ggdraw() +
4  draw_image("https://jeroen.github.io/images/frink.png") +
5  draw_plot(p)

总结

        

当需要组合图片的时候,cowplot是个很好的工具。可以实现各种形式的图形组合。


感谢Claus O. Wilke对R的贡献

——————————————

往期精彩:

天善智能每日一道算法题,打卡学习小程序

推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册