参考书籍:《ggplot2:数据分析与图形艺术》
一张统计图形是从数据到几何对象(geometric object,缩写为geom,包括点、线、条形等)的图形属性(aesthetic attributes,缩写为aes,包括颜色、形状、大小等)的一个映射。此外,图形中还可能包含数据的统计变换(statistical transformation,缩写为stats),最后绘制在某个特定的坐标系(coordinate system,缩写为coord)中,而分面(facet,指将绘图窗口划分为若干个子窗口)则可以用来生成数据不同子集的图形。总而言之,一张统计图形就是由上述这些独立的图形部件所组成的。
从qplot开始入门
qplot()——quick plot快速作图,qplot可以看作是plot到ggplot2的中间过度,qplot与plot很像,它既有plot的特征,也有ggplot的概念,通过qplot可以快速入门,学习到ggplot2的一些术语,比如:
- ggplot2中的图形属性名称(如colour,shape和size)比基础绘图系统中的名称(如col,pch和cex等)更直观,且更容易记忆。
- .在基础绘图系统中,可以通过points(),lines()和text()函数来向已有的图形中添加更多的元素。而在ggplot2中,需要在当前的图形中加入额外的图层。
library("ggplot2")
diamonds#钻石信息数据集
names(diamonds)
#"carat" "cut" "color" "clarity" "depth" "table" "price" "x" "y" "z"
#carat重量、cut切工、color颜色、clarity净度、price价格以及五个物理指标——深度depth、钻面宽度(table)、x、y和z
qplot()
qplot(x = carat,y = price,data = diamonds)
qplot(x = log(carat),y = log(price),data = diamonds)
set.seed(0)#种子
d=diamonds[sample(nrow(diamonds),100),]
qplot(x = carat,y = price,data = d,colour=color)
qplot(x = carat,y = price,data = d,shape=cut)#形状
qplot(x = carat,y = price,data = d,alpha=I(1/10))#透明度
几何对象 | b |
---|
geom=“point” | 画散点图,当提供x,y时为缺省选项 |
geom=“smooth” | 画平滑曲线及标准误 |
geom=“boxplot” | 画箱线图 |
geom="path"或geom=“line” | 画连线 |
geom=“histogram” | 画直方图,当只提供x时为缺省选项 |
geom=“fregpoly” | 画频率多边形 |
geom=“density” | 画密度曲线 |
geom=“bar” | 画柱形图 |
qplot(x = carat,y = price,data = diamonds,geom = c("point","smooth"))
#阴影部分为误差
qplot(x = carat,y = price,data = d,geom = c("point","smooth"),span=0.2)
#span控制曲线的平滑程度,弯曲程度
1ibrary(mgcv)
qplot(x = carat,y = price,data = d,geom = c("point","smooth"),
method="gam",formula=y~s(x))
#利用method参数可以选择许多不同的平滑器:
method="1oess",当n较小时是默认选项,使用的是局部回归的方法
使用method="gam",formula=y~s(x)来调用mgcv包拟合一个广义可加模型。
qplot(x = carat,
data = diamonds,geom = "histogram",binwidth=0.01,xlim=c(0,3))#直方图
qplot(x = carat,
data = diamonds,geom = "histogram",binwidth=0.1,xlim=c(0,3),fill=color)#设置颜色
#colour控制外框线的颜色,用fi11设置填充颜色,以及用size调节线的粗细。
qplot(carat,data=diamonds,geom="density")#密度曲线
#adjust参数控制曲线的平滑程度(adjust取值越大,曲线越平滑)
#binwidth参数通过设定 组距 来调节平滑度。
#breaks参数切分位置
economics数据集
qplot(x = date,y = unemploy/pop,data = economics,geom = "line")#时间序列
#分面
#分面是将数据分割成若干子集,然后创建一个图形的矩阵,将每一个子集绘制到图形矩阵的窗格中。
#所有子图采用相同的图形类型,并进行了一定的设计,使得它们之间方便进行比较。
qplot(x =carat,data = diamonds,
facets = color~.,geom = "histogram",binwidth=0.1,xlim = c(0,3))
#qplot的一些参数与plot作用相同
#xlim、ylim、xlab、ylab、main、logqplot(x=carat,y=price,data=d,colour=color,xlab="x轴",
ylab="y轴",main="标题",log="xy")