如前文所述,ggplot2使用图层将各种图形元素逐步添加组合,从而形成最终结果。第一层必须是原始数据层,其中data参数控制数据来源,注意数据形式只能是数据框格式。aes参数控制了对哪些变量进行图形映射,以及映射方式,aes是Aesthetic的缩写。

下面我们来绘制一个直方图作为示例。数据集仍采取mpg,对hwy变量绘制直方图。首先加载了扩展包,然后用ggplot函数建立了第一层,hwy数据映射到X轴上;使用+号增加了第二层,即直方图对象层。此时p被视为一种层对象,使用summary函数可得到关于它的更多信息,print(p)命令即可进行绘图。

 1 library(ggplot2)
 2 p <- ggplot(data = mpg,aes(x = hwy))
 3 p <- p + geom_histogram()
 4 summary(p)
 5 data: manufacturer, model, displ, year, cyl, trans,
 6   drv, cty, hwy, fl, class [234x11]
 7 mapping:  x = hwy
 8 faceting: facet_grid(. ~ ., FALSE)
 9 -----------------------------------
10 geom_histogram:
11 stat_bin:
12 position_stack: (width = NULL, height = NULL)

上面的信息告诉我们,p对象含有两层,第一层数据层描述了变量和映射方式,第二层是直方图对象(geom_histogram),geom表示几何对象,它是ggplot中重要的图层控制对象,因为它负责图形渲染的类型。geom_histogram是图形渲染类型的一种,其它类型可参见官网。

每个geom对象都需要有数据输入,数据可以从第一层中自动读取,也可以在aes参数中直接设置。而且每个geom还默认搭配某种统计变换(stat),geom_histogram的默认统计变换是stat_bin。它负责对数据进行分组计数。

下面我们尝试两种更为复杂的直方图,首先将数据按照year这个变量划分为两组,用不同的颜色绘制直方图,而且用频率而非计数来刻画Y轴,并添加密度曲线。

p <- ggplot(mpg,aes(hwy))
p + geom_histogram(position = 'identity',alpha=0.5,aes(y = ..density..,fill = factor(year))) +stat_density(geom = 'line',position = 'identity',aes(colour = factor(year)))

如果想将两个直方图分开绘制,也可以使用facet_grid参数,结果如下图所示。

转载于:http://r-ke.info/2012/02/06/ggplot2-intro-2.html

转载于:https://www.cnblogs.com/liulunyang/p/3868852.html

ggplot2绘图入门系列之二:图层控制与直方图相关推荐

  1. ggplot2绘图入门系列之四:再说散点图

    1 色彩和形状的控制 数据特征不仅可以用坐标来表示,也可以用不同的色彩或形状来表示.仍以mpg数据集为例,所用到的变量有cty(城市中行驶距离),hwy(高速路行驶距离),displ(排量大小),ye ...

  2. r语言dmy()函数转化出现na_R语言入门系列之二

    2数据管理与可视化 2.1数据预处理 在进行正式的数据分析之前,通常要对数据进行处理.而读取数据仅仅是最简单的,之后还要进行数据的筛选.排序.转换等.数据框是最方便的数据存储.管理对象.R有很多内置的 ...

  3. STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置

    摘自:STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 作者:自信且爱笑' 发布时间: 2021-05-01 12:08:32 网址:https://blog ...

  4. [转]OllyDBG 入门系列(二)-字串参考

    标 题: [原创]OllyDBG 入门系列(二)-字串参考 作 者: CCDebuger 时 间: 2006-02-14,13:34 链 接: http://bbs.pediy.com/showthr ...

  5. OllyDBG 入门系列(二)-字串参考

    标 题: [原创]OllyDBG 入门系列(二)-字串参考 作 者: CCDebuger 时 间: 2006-02-14,13:34:43 链 接: http://bbs.pediy.com/show ...

  6. Reflex WMS入门系列之二十一:关闭一个不需要的盘点

    Reflex WMS入门系列之二十一:关闭一个不需要的盘点 仓库管理实践中,如果业务人员创建好了一个盘点,发现后续暂时不需要执行实际的库存清点工作,或者本次盘点因故取消,或者发现该盘点数据有误需要关闭 ...

  7. 看雪学院-OllyDBG入门系列(二)笔记

    OllyDBG 入门系列(二)-字串参考 笔记 原作地址:http://bbs.pediy.com/showthread.php?threadid=21308 作者:CCDebuger   软件破解的 ...

  8. Reflex WMS入门系列十二:Reflex里的Location

    Reflex WMS入门系列十二:Reflex里的Location 玩过SAP系统里的人都知道,在SAP系统里库存管理分为IM Level和WM Level.IM Level的仓库,在SAP里被定义为 ...

  9. Spark入门系列(二)| 1小时学会RDD编程

    作者 | 梁云1991 转载自Python与算法之美(ID:Python_Ai_Road) 导读:本文为 Spark入门系列的第二篇文章,主要介绍 RDD 编程,实操性较强,感兴趣的同学可以动手实现一 ...

最新文章

  1. 区块链预言机(3)关键点说明
  2. 详解平衡二叉树(AVL),红黑树与平衡二叉树的区别
  3. okcoinapi开发代码_比特币程序化交易入门(5):WebSocket API
  4. 摆脱pom XML…几乎
  5. 服务中心Eureka
  6. php while mysql_我怎么能避免在PHP的While循环中使用MySQL查询
  7. linux比较小数大小,带有小数点的数值对比大小
  8. AccessibilityService(无障碍辅助服务)
  9. Android实现友盟分享小程序
  10. vue+elementui 房贷计算器
  11. win7系统修复工具_Windows Repair Pro v4.4.60 系统修复工具
  12. 安全合规/法案--34--《APP违法违规收集使用个人信息行为认定方法》原文及解读
  13. ubuntu18.04声音dummy output的问题
  14. bugku-逆向-5、Timer
  15. Python做一个Kindle电子书下载助手,真香!
  16. 金岩石:陈晓失误已铸成大错
  17. android 事例源码 搜集
  18. 金庸群侠传之武林浩荡1.7全隐藏完整攻略流程(图文)
  19. 荧光染色切片病理分析算法(深度学习+机器学习)
  20. 图像识别和计算机视觉:如何应用人工智能技术实现自动化检测和识别

热门文章

  1. java 浮点数精度_Java中浮点数精度问题
  2. 微信验证服务器是怎么回事,微信服务器认证为什么需要这么多参数?
  3. 加载svr模型_机器学习XGBoost实战,网格搜索自动调参,对比随机森林,线性回归,SVR【完整代码(含注释)+数据集见原文链接】...
  4. mysql事务实战_MySQL - 实战 (2) - 事务隔离
  5. mysql 数据类型 decimal_mysql decimal、numeric数据类型
  6. python求均方根误差_python之MSE、MAE、RMSE的使用
  7. 数学之美系列五 -- 简单之美:布尔代数和搜索引擎的索引
  8. golang适合做什么_什么八字适合做销售 适合做销售的八字特征
  9. 不会用计算机怎么办,不会看电脑配置怎么办?通过本文就可以详细了解电脑配置信息...
  10. mybatis的dao向mapper.xml传入多参数