1.1 简介

ggplot2是一个用来绘制统计图形(数据图形)的R软件包,与其他大多数的图形软件包不同,ggplot2是由其背后的一套图形语法所支持的。ggplot2可以绘制出很多美观度的图形,同时能避免诸多繁琐的细节。用ggplot2绘图时,图形的每个部分可以一次进行构建,之后还可以进行编辑。ggplot2采用了图层的设计方式。

1.2 图形的语法

一张统计图形就是从数据几何对象(点、线、条形等)的图形属性(颜色、形状、大小等)的一个映射。此外,图形中还可能包含数据的统计变换,最后绘制在某个特定的坐标系。

  • 数据:最基础的部分是将数据中的变量对应到图形属性的映射;
  • 几何对象:代表在图中实际展现的点、线、多边形等元素;
  • 统计变换:是对数据进行的某种汇总,例如,将数据分组计数及创建直方图,或将一个二维的关系同线性模型进行解释,统计变换是可选的,到通常非常有用;
  • 标度:将数据的取值映射到图形空间,例如,用颜色、大小或形状来表示不同的取值,展现标度的常见做法是绘制图例和坐标轴;
  • 坐标系:描述了数据是如何映射到图形所在的平面的,它同时提供了看图所需的坐标系和网格线;
  • 分面:描述了如何将数据分解为各个子集,以及如何对子集作图并联合进行展示。

1.3 ggplot2和其他R软件包的对比

  • 基础图形系统基于实现S语言图形驱动的经验,采用“纸-笔”模式,只能在图形的最顶端进行绘图,而不能修改或删除已有的内容,除了已经呈现在屏幕上的图像之外,图形没有其他的表达形式,,如层次、结构、元素类型等;
  • 网格图形系统是一个更加丰富的绘制基本图形元素的系统,其中的图形对象可以与屏幕上的图像独立存在,并且可以反复修改,其中一系列的视图区可以方便地对图形进行复杂的布局;
  • lattice是对基础绘图系统的巨大改进,在此可以方便地进行条件作图,并且其中的一些作图细节或自动地完成;
  • ggplot2能够创建任何类型的统计图形,其背后的模型使得用户可以用紧凑的语法轻松地绘制出许多图形,而且其中独立的图形部件使得图形的可扩展性很强。

总结

ggplot2(1) 简介的更多相关文章

  1. R语言ggplot2 简介

    ggplot2是一个绘制可视化图形的R包,汲取了R语言基础绘图系统(graphics) 和l attice包的优点,摒弃了相关的缺点,创造出来的一套独立的绘图系统: ggplot2 有以下几个特点: ...

  2. ggplot2——简介

    ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发套路做 ...

  3. ggplot2包--R可视化

    1.ggplot2发展历程 ggplot2是Hadley在爱荷华州立大学博士期间的作品,也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot,但后来废弃了,某种程度上这也是Hadley ...

  4. (数据科学学习手札55)利用ggthemr来美化ggplot2图像

    一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原 ...

  5. [转]ggplot2用法简单介绍

    简介 ggplot2包是基于Wilkinson在<Grammar of Graphics>一书中所提出的图形语法的具体实现, 这套图形语法把绘图过程归纳为data, transformat ...

  6. (数据科学学习手札38)ggplot2基本图形简述

    一.简介 上一篇中我们介绍了ggplot2的基本语法规则,为了生成各种复杂的叠加图层,需要了解ggplot2中一些基本的几何图形的构造规则,本文便就常见的基础几何图形进行说明: 二.各基础图形 2.1 ...

  7. (数据科学学习手札37)ggplot2基本绘图语法介绍

    一.简介 ggplot2是R语言中四大著名绘图框架之一,且因为其极高的参数设置自由度和图像的美学感,即使其绘图速度不是很快,但丝毫不影响其成为R中最受欢迎的绘图框架:ggplot2的作者是现任Rstu ...

  8. Python3.x:第三方库简介

    Python3.x:第三方库简介 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex ...

  9. (数据科学学习手札57)用ggplotly()美化ggplot2图像

    一.简介 经常利用Python进行数据可视化的朋友一定用过或听说过plotly这样的神器,我在(数据科学学习手札43)Plotly基础内容介绍中也曾做过非常详细的介绍,其渲染出的图像以浏览器为载体,非 ...

随机推荐

  1. generate的使用verilog

    根据项目设计的需要,要实例化多个类似的模块,这些类似的模块包括方波波形发生器,这几个模块基本相同,除了参数传递值不同,其他他部分都是相同的 具体实现代码如下: 此外有计数模块的例化,这个模块例化多个的 ...

  2. CSS面试题&知识点汇总

    问题&答案 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? 有两种, IE 盒子模型.W3C 盒子模型: 盒模型: 内容(content).填充(padding).边界(m ...

  3. Nginx笔记总结十五:nginx+keepalive+proxy_cache配置高可用nginx集群和高速缓存

    nginx编译 wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz ./configure --prefix=/usr/loca ...

  4. laravel-事件

    1.注册事件以及监听器 首先我们需要在 app/Providers/目录下的EventServiceProvider.php中注册事件监听器映射关系,如下: /** * The event liste ...

  5. tomcat6版本虚拟目录详细配置

    在tomcat6版本中: 一. 1.[官方文档]本人不推荐. 在tomcat\conf下server.xml中找到 <Host name="localhost"  appBa ...

  6. Google在百慕大避税几十亿美金,为什么巨头和富豪都会选百慕大避税?

    为什么"越有钱越有钱"?为什么富豪只要不自己"作",就能让自己的财富疯狂增加?除了经营意识之外,关键他们还可以利用自己的资源.实力等去做很多看似让人不齿,但其实 ...

  7. linux下好用软件全记录

    开发工具 1. Shutter 抓图工具(用过linux最好的抓图工具,类似win下的Snagit) 2. RabbitVCS SVN客户端(可以和subversion媲美的svn客户端) 3. My ...

  8. Java入门教程五(数字和日期处理)

    Java 提供了处理相关问题的类,包括 Math 类.Random 类.BigInteger 类.Date 类等. Math类 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平 ...

  9. Grafana使用总结

    最近工作需求学习了下grafana,根据创建的几个dashboard简要记录下创建过程. 本次使用了grafana做可视化展示,data source使用的rds是postgresql和时序数据库in ...

  10. 前阿里数据库专家总结的MySQL里的各种锁(下篇)

    在上篇中,我们介绍了MySQL中的全局锁和表锁. 今天,我们专注于介绍一下行锁,这个在日常开发和面试中常常困扰我们的问题. 1.行锁基础 由于全局锁和表锁对增删改查的性能都会有较大影响,所以,我们自然 ...