作者:小橙子

来源:小橙子学数据分析

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

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

1library(ggplot2)2library(cowplot) #奶牛画图包3library(ggthemes) #ggplot中的主题包,囊括了很多经典图表形式,比如经济学人、538、华尔街等等45p <-  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()78plot_grid(p, q,labels= c('A', 'B'), label_size = 12,label_colour = ("blue"))  2library(cowplot) #奶牛画图包3library(ggthemes) #ggplot中的主题包,囊括了很多经典图表形式,比如经济学人、538、华尔街等等45p <-  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()78plot_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)'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()1011bottom_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(1, 1.2),label_colour = ("blue")) 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()1011bottom_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(1, 1.2),label_colour = ("blue"))

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

1library(viridis) 2ggdraw() +3  draw_plot(p + theme(legend.justification = "bottom"), 0, 0, 1, 1) +4  draw_plot(r + scale_color_viridis(discrete = TRUE) + 5              theme(legend.justification = "top"), 0.5, 0.1, 0.5, 0.4) +6  draw_plot_label(c("A", "B"), c(0, 0.55), c(1, 0.5), size = 15)2ggdraw() +3  draw_plot(p + theme(legend.justification = "bottom"), 0, 0, 1, 1) +4  draw_plot(r + scale_color_viridis(discrete = TRUE) + 5              theme(legend.justification = "top"), 0.5, 0.1, 0.5, 0.4) +6  draw_plot_label(c("A", "B"), c(0, 0.55), c(1, 0.5), size = 15)

cowplot也支持"水印"功能

1ggdraw(r) + 2  draw_plot_label("A", size = 14) + 3  draw_label("小橙子学数据分析", angle = 45, size = 60, alpha = .2)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)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是个很好的工具。可以实现各种形式的图形组合。

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

往期精彩:

  • 今天,我改名了!

  • Oracle裁员补偿N+6,员工仍不满意,为何?

  • 精选| 2019年3月R新包推荐

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

  1. 数据可视化:利用Python和Echarts制作“用户消费行为分析”可视化大屏

    数据可视化:利用Python和Echarts制作"用户消费行为分析"可视化大屏 前言 实验目的: 准备工作: 一.创建项目: 二.建立数据库连接获取数据: 三.页面布局: 四.下载 ...

  2. AMap + echarts、google map + d3.js分别实现数据可视化中的飞线图(迁徙图)

    首先肯定是给出demo啦: 演示demo 直接到左侧选择框中选择View taxi flow里面随便选个日期 总体介绍 最近由于工作室项目需要做一个数据可视化平台,这个平台最终是交由国外人使用的.而国 ...

  3. 用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+智能web端高保真大数据动态可视化大屏看板+中国动态地图+智慧电商实时动态数据大屏看板

    作品内容:用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+web端高保真大数据动态可视化大屏看板+中国动态地图+电商实时动态数据大屏看板 ...

  4. R语言数据可视化之多幅图形的组合及输出

    科研绘图通常需要批量形成多幅图形,强大的ggplot2可以帮助我们高效绘制图形,但在多个子图的组合上仍然不太给力.我在连续不断的踩坑中摸索出了2个比较简便的方法,在这里记录和分享给大家,希望能对大家有 ...

  5. Python 数据可视化:Stack Graph 堆叠图,标准化堆叠柱形图,标准化的同时还能反应数据量大小的堆叠图(放入自写库,一行代码搞定复杂细节绘图)

    本文已在公众号 " 数据分析与商业实践 " 首发.关注一下~,更多商业数据分析案例源码等你来撩.后台回复 "堆叠图" ,即可获取本文的案例示范与包含详细注释的源 ...

  6. 数据分析入门之Matplotlib数据可视化基础(散点图、折线图、直方图、饼图、箱线图)

    文章目录 1.掌握pyplot基础语法 1.1.基本绘图流程 1.2.创建画布与创建子图 1.2.1.设置画布大小 1.2.2.添加图列 1.2.3.解决中文乱码 1.3.添加画布内容 1.4.保存与 ...

  7. 数据可视化:柱状图、折线图、饼图等六种基本图表的特点及适用场合

    图表是"数据可视化"的常用手段,其中又以基本图表--柱状图.折线图.饼图等等--最为常用. 一.柱状图(Bar Chart) 柱状图是最常见的图表,也最容易解读. 它的适用场合是二 ...

  8. 多维度雷达图怎么做_数据可视化:柱状图、雷达图等六种基本图表的特点和适用场合...

    序言 进入正题之前,先纠正一种误解. 有人觉得,基本图表太简单.太原始,不高端,不大气,因此追求更复杂的图表.但是,越简单的图表,越容易理解,而快速易懂地理解数据,不正是"数据可视化&quo ...

  9. pandas数据可视化_5利用Pandas进行强大的可视化以进行数据预处理

    pandas数据可视化 One of the most common pitfalls I observe repeatedly among relatively junior data scient ...

  10. echart雷达图文字挤在一起_【数据可视化·图表篇】雷达图

    数据可视化基础图表系列的最后一篇终于跟大家见面了!今天小数将带大家走进雷达图. (之前关于柱状图.折线图.饼图和散点图的分享文章,感兴趣的小伙伴可以查看历史文章哦) 为方便大家理解,本文生成图表所使用 ...

最新文章

  1. BCH社区为比特币现金的发展买单
  2. Python中的Numpy模块(1,numpy创建)
  3. 数塔(hdoj 2084,动态规划递推)
  4. 3、CommonChunkPlugin提取公共js-以提取一个jquery为例
  5. upupoo设置HTML壁纸,win10 upupoo黑屏怎么解决-解决upupoo设置壁纸黑屏的方法 - 河东软件园...
  6. 电脑清理代码_网络安全宣传周丨电脑中病毒,这样处置!
  7. Java截取视频某一帧
  8. 大文件上传插件webupload插件
  9. nu.xom.IllegalNameException: 0x20 is not a legal NCName character
  10. GetLastError()函数返回值对照列表
  11. arm+linux+分辨率无效,Arm NPU的超分辨率!
  12. 阿里云云效:代码提交使用
  13. Google-Guice入门介绍
  14. 食品的英语名称总结-----实用
  15. LayaAir使用总结
  16. java如何加入扫描上传_javaWEB连接扫描仪,将扫描的的图片上传至服务器
  17. android 360短信拦截短信验证码,莫名收到短信验证码?360借条安全专家提醒小心新骗局...
  18. 信安易卫士1.33版更新及本人设置示例
  19. 智慧驾培创新模式,vr模拟驾驶带你沉浸式练车
  20. python中for in语句对列表的修改

热门文章

  1. 腾讯裁员内幕:顶层反思推动,PCG与CSIG影响最大
  2. Redis+Nginx+设计模式+Spring全家桶+Dubbo+阿里P8技术精选文档
  3. Redis百亿级Key你用过吗?
  4. 重磅推荐:2017 年最流行的 15 个数据科学 Python 库
  5. 搞定 Linux Shell 文本处理工具,看完这篇集锦就够了
  6. 100 道 Linux 笔试题,能拿90分以上的都去了BAT
  7. 什么才是真正的价值?
  8. python3.7安装pyltp出错_安装pyltp遇到的问题及解决办法
  9. pbewithmd5anddes算法 对应.net_「AI」目标检测第一话:R-CNN和SPP-Net
  10. 随笔:《向死而生》---我修的死亡学分