《ggplot2:数据分析与图形艺术》笔记

第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、整合

来自为知笔记(Wiz)

时间: 2025-01-06 00:01:24

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

SQL 笔记 By 华仔

-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据库的大小的方法 笔记3-徐 设置数据库自动增长注意要点 笔记4-徐 模仿灾难发生时还原adventurework数据库 示例 stopat 笔记5-徐 检查日志文件不能被截断的原因 笔记6-徐 检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题 笔记7-徐 SQLSERVER日志记录

SQL笔记---多表左联

这是实际场景当中的一个例子,拿出来分析总结思路. -- SQL 查询 --SELECT  orderQuery.Rk_SkuCode ,        orderQuery.SkuName,        SUM(ISNULL(orderQuery.OrderTotal, 0))        - SUM(ISNULL(removeQuery.RemoveTotal, 0))        - SUM(ISNULL(pickQuery.PickTotal, 0))        - SUM(IS

SQL笔记---分页

随用随想,随用随记. 通过实际应用掌握SQL语句. 一. SQL分页 1. 第一种方法:利用ID大于多少进行筛选 SELECT TOP 20        *FROM    dbo.WMS_StockWHERE   ( Rk_SkuCode > ( SELECT MAX(Rk_SkuCode)                         FROM   ( SELECT TOP 40                                            *           

《HeadFirst SQL》笔记

规范化 0 约束 1 原子性 2 第一范式 1NF 3 数据模式 4 依赖 5 联接查询 6 交叉联接(AKA 笛卡尔联接,叉积) 7 内联接 8 子查询 9 外联接 10 自联接 11 集合 12 事务 13 ACID 14 管理事务 15 常用语句 16 注意 17 规范化 约束 NOT NULL UNIQUE PRIMARY KEY DEFAULT FOREIGN KEY:引用父表的某个唯一值引用完整性:插入外键列的值必须已经存在于父表的来源列中 --创建外键 create table i

SQL笔记1:SELECT及SELECT高级应用

T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:GROUP BY 7.1:GROUP BY ALL 7.2:HAVING 8:SELECT字句技术 8.1:使用DISTINCT消除重复值 8.2:返回拼接的结果 8.3使用INTO字句 9:子查询 9.1:子查询类型 9.2:代替表达式的查询 9.3:多层嵌套 10:比较使用 EXISTS 和 IN 的

金典 SQL笔记(6)

page223-索引 --利用SQL 语句创建索引 --CREATE INDEX 索引名称on 表名(字段 ,字段, 字段字段n) --索引名称必须为唯一的,字段 ,字段, 同意一个到多个 --范例为T_person 表中给FName创建索引索引名为 idx_person_name CREATE INDEX idx_person_name ON T_Person (FName) --删除索引 --drop index 表名索引名 DROP INDEX T_person.idx_person_na

Mybatis 项目开发实际常用SQL笔记总结

parameterType 和 resultType parameterType:单个参数用String,多个参数用map resultType:   可以是 Integer.String.Object    <select id="countGroupMasterByUid" parameterType="String" resultType="Integer">      SELECT              COUNT(id)

sql笔记/分页存储过程

[email protected]c#中进行++操作可以是整数或小数,sql中只能对整数进行++操作.char类型 适合存储长度波动较小不回收效率高varchar 类型 适合存储长度波动较大可以回收nchar代表unicode 存储内容包括汉字时候考虑加n SQL语句特点1不区分大小写2没有双引号所有字符串都包含在单引号3没有逻辑相等,逻辑相等和赋值一样都是用=4没有bool值得概念,但是在视图中可以输入true/false5也有关系运算符.6也有逻辑运算符 &&-- and || --o

sql笔记

1. 看下面sql,重点有两个,一个是distinct  ,一个是树形结构查询 select DISTINCT t.unit_code from t_unit_relation t where t.corp_tn='jiaozhougongan' start with t.unit_code='0001' connect by prior t.unit_code = t.unit_upcode 分析: ① distinct:去重复值 ② 树形结构查询,这个博客:http://www.cnblog

HeadFirst SQL 读书摘要

数据库都是用 圆柱形表示的. 数据库中包含表 表中包含行和列 行又叫记录record,  列又叫 字段field 创建数据库 create database mypipe_l; 选择数据库 use mypipe_l; 创建表 create table doughnut( name VARCHAR(10), type VARCHAR(6) ); 查看表 desc doughnut; 删除表 drop table doughnut; 插入数据 insert into doughnut (name,