第1章 简介

1.3图形的语法

第2章从qplot开始入门

1、基本用法:qplot(x,y,data)
x是自变量横轴,y是因变量纵轴,data是数据框
 
2、图形参数
colour=I("red"),shape,size=I(2),alpha=I(1/20)
colour是(外框)颜色,fill是填充颜色,shape是点的形状,适合描述分类变量:形状和颜色
size是点的大小,适合描述连续变量:大小和颜色
alpha是点的透明度,1/20说明20个重叠在一起就会变得不透明,可以用来观察点的密集区域
 
3、几何对象geom=c("point","smooth")按顺序堆叠,按数据维度可划分为:
  • 二维变量关系:
geom=“point”:绘制散点图
geom=“smooth”:拟合一条平滑曲线,灰色区域是置信区间,不绘制标准误差则se=FASLE
geom=“boxplot”:绘制箱线胡须图,概括一系列点的分布情况
geom=“path” 和 geom=“line”:在数据点之间绘制连线,一般用来探索时间和其他变量之间的关系,线条图只能创建从左到右的连线,而路径图则可以是任意方向
  • 一维分布:集合对象由变量类型决定
    • 连续变量:
geom=“histogram”:直方图(默认)
geom=“freqpoly”:频率多边形
geom=“density”:密度曲线
    • 离散变量:
geom=“bar”:条形图
 
3.1 平滑曲线geom=“smooth”具体参数
默认灰色区域是置信区间,设置se=FALSE将不绘制标准误
method参数,选择不同的平滑器:
  • method=“loess”,span=0。1:局部回归方法,曲线的平滑程度由span控制,内存消耗为O(n2),当n超过1000时将采用别的平滑算法。n较小时是默认选项
  • method=“gam”,formula=y~s(x):mgcv包拟合广义加性模型。与lm的样条类似,但样条的阶数是通过数据估计得到的。对于大数据(n>1000)使用y~s(x,bs=“cs”)
  • method=“lm”:线性模型,默认是一条直线,可通过formula=y~poly(x,2)拟合二次多项式,也可加载splines包使用样条曲线formula=y~ns(x,2),第二个参数是自由都,取值越大,曲线的波动越大
  • method=“rlm”:MASS包,和lm类似,但采用更稳健的拟合算法,使得对异常值不太敏感
 
3.2 箱线图和扰动点图:研究连续变量随着分类变量的变化情况
  • geom=“jitter”:扰动点图
  • geom=“boxplot”:箱线胡须图,反映中位数等。可以配合使用colour、fill和size等
 
3.3 直方图和密度曲线图:展示单个变量的分布(连续变量)
  • 一般绘制
geom=“histogram”直方图,binwidth设定组距(组距大反映总体特征),break可以显示指定切分位置
geom=“density”:密度曲线图,adjust控制曲线的平滑程度(adjust越大曲线越平滑)
  • 增加 分类型变量 控制
参数colour或者fill根据设定分类变量时,几何对象会自动拆分,并绘制多条密度曲线图或直方图
 
3.4条形图geom=“bar”(离散变量)
  • 普通条形图
  • 增加 连续变量 权重: weight
3.5时间序列中的线条图和路径图
  • geom=“line”:线条图,按x的取值排序(一般横轴是时间),从左到右连接
  • geom=“path” :路径图,任意原始顺序连接(点的顺序反映先后时间):colour参数设置时间来反映
 
group设置多个序列个体,并映射到一张图中(4.5.3节)
 
4、分面:facets 将图形拆分成多个窗格(7.2节)
facets=row.var.name~.:单列多行
facets=row.var.name~col.var.name:多行多列
“..density..”——新语法,将密度而不是频数映射到y轴
 
5、其他参数
main——标题
xlab,ylab——横纵坐标轴标题。如ylab=expression(frac(y,x))=y/x
xlim,ylim——横纵坐标轴取值范围,如c(.2,1)
log——log=“xy”或者log=“x”设置某个坐标取对数
 

第9章 数据操作

9.1 plyr包简介
  • 分组变量:用一张图内的数据分成几个部分处理
  • 分面变量:用来把数据分割成几个部分,每个部分分别画在一张小图里
ddply(.data,.variable,.fun)——针对多个子集,应用对单独子集的操作函数
  • subset()——用来对数据取子集
ddply(diamonds,.(color),subset,order(carat)<=2)  #选取各个颜色里最小的2颗钻石
  • transform()——用来进行数据变换
ddply(diamonds,.(color),transform,price=scale(price))  #每个颜色组里钻石的价格标准化
  • colwise()——把一个处理向量的函数变为处理每列数据框
colwise(func)
func(<data.frame>)
或者
colwise(func)(<dataframe>)
    • numcolwise()——只对数值类型的列操作
    • catcolwise()——只对分类类型的列操作
9.2“宽数据”变为“长数据”
melt()——变量不再放在各个列上,而是排成一列,每个变量都分别占其中的几行。reshape2包
data是待变形的元数据
id.vars依旧放在列上位置保持不变的变量,该值通常是离散的,类似数据库中的主键
measure.vars需要被放在同一列的变量,不同变量放在同一列并根据变量名进行分组。
 
  • 多重时间序列图
在一张图上画2个时间序列:
1、画图时把两个变量放在两个不同的图层上
2、把数据变成一个“长数据”,然后根据variable变量区分
分析:由于两个时间序列取值差异太大,常常会导致其中一个序列值趋近一条直线
 
改进方法:
1、把数值调整到相同范围:做极差正规化变换
2、使用自由标度的分面
qplot(date,value,data=emp,geom="line")+facet_grid(variable~.,scale=“free_y”)
  • 平行坐标图
每个样本画一条曲线时(需要保证样本取值可比),将行名rowname作为分组变量,同时结合大数据作图方法(透明度和聚类)
 
9.3 ggplot()方法
主要思想:将数据变形和图形展示尽可能分开进行,而不必让画图局限在某些特殊函数里。ggplot负责绘图,fortify()负责数据变形
ggplot是一种泛型函数,只提供作图所需要的工具。
  • 线性模型
  • 编写自己的方法
其它:
第4章:
1、图形属性映射:aes(x=x,y=y,colour=z)图形属性参数
2、统计变换
3、位置调整
4、整合
 
 
 

《ggplot2:数据分析与图形艺术》,读书笔记的更多相关文章

  1. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  2. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  3. CSAPP读书笔记--第八章 异常控制流

    第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...

  4. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. Linux Uptime 命令,让你知道你的系统运行了多久

    对于一些人来说系统运行了多久是无关紧要的,但是对于服务器管理员来说,这是相当重要的信息.服务器在运行重要应用的时候,必须尽量保证长时间的稳定运行,有时候甚至要求零宕机.那么我们怎么才能知道服务器运行了 ...

  2. Ubuntu 编译Webkit --gtk

    转载自:http://www.linuxidc.com/Linux/2011-10/44809.htm webkit是一个浏览器内核,google的chrome就是基于它的,下面介绍一下如何在Ubun ...

  3. Xamarin+vs2010部署错误:error MSB6004: 指定的任务可执行文件位置\sdk\\tools\zipalign.exe”无效

    好不容易配好了Xamarin和vs2010,也搞好了GenyMotion的虚拟机配置,开始调试的时候又报出了这样的错误: error MSB6004: 指定的任务可执行文件位置"C:\Use ...

  4. struts2学习问题(一)

    一.struts2 Unknown tag (s:property). 解释:不识别标签 解决:这是sturts2的标签,导入相应的包<%@taglib prefix="s" ...

  5. [洛谷P1074] 靶形数独

    洛谷题目链接:靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博 ...

  6. 通过 CLI 搭建 ghost

    参考: ghost 官网 系统架构说明 架构 架构说明 本实践将 web 接入, nodejs 服务, 数据库分离, 适合生产环境场景. nginx 接入请求, 反向代理后端 nodejs 服务 no ...

  7. react+webpack+babel+eslint+redux+react-router+sass 环境快速搭建

    本文中的例子支持webpack-dev-server自动刷新及react热替换,使用了redux管理state,用react-router切换路由,用babel实现ES6语法书写,同时支持async/ ...

  8. 【bzoj2086】Blocks

    在洛谷上点了个Splay的tag想玩玩,结果看到这题…… #include<bits/stdc++.h> #define N 1000005 using namespace std; ty ...

  9. Linux编写Shell脚本

    ——<Linux就该这么学>笔记Shell脚本命令的工作方式有两种 交互式: 用户每输入一条命令就立即执行 批处理: 由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中 ...

  10. spring 声明式事务中try catch捕获异常

    原文:http://heroliuxun.iteye.com/blog/848122 今天遇到了一个这个问题 最近遇到这样的问题,使用spring时,在业务层需要捕获异常(特殊需要),当前一般情况下不 ...