《ggplot2:数据分析与图形艺术》
qplot语法总结及绘图练习
> library(ggplot2)
1,基本绘图语法
> dsmall <- diamonds[sample(nrow(diamonds), 100), ]
#取原始数据的100个随机样本
双绘图(两种不同的图层绘制到一张里面)
将geom_bar和geom_line绘制到同一张图中,往往会利用如下方法:
ggplot(msg)+geom_bar(aes(x=position, y=average_AF), stat="identity")+geom_line(aes(x=position, y=sample_count)
即直接在ggplot中引用数据集,在bar和line中引用x及y轴的值,但这样做有时会报错,报错内容为
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
这说明barplot和lineplot没有明确分组,每个组都只有一个对象,所以不同的图层要进行不同的分组,修改上面的代码为:
ggplot(msg)+geom_bar(aes(x=position, y=average_AF, group=1), stat="identity")+geom_line(aes(x=position, y=sample_count, group=2))
这里设置两个不同的分组可解决报错问题
散点图
> qplot(carat, price, data=diamonds)
默认情况下即可绘制散点图,默认输入的前两个参数分别为x轴的值和y轴的值,data表示绘图数据。这三个参数属于必须参数。数据集为dataframe对象,多半是通过文件读取内容得到的数据集。
> rt <- read.table('/Users/XXX/Desktop/R_draw/R_read_rable.txt', header=FALSE)
> colnames(rt)=c('average','mean','top','bottom','last','bool')
> rt
average mean top bottom last bool
1 52.0 111.0 830 5 6.2 no
2 57.5 128.9 710 5 7.5 yes
qplot支持将变量的函数作为参数 > qplot(log(carat), log(price), data=diamonds)
展示的结果是,x及y轴的坐标轴描述和坐标值,均为原值的log值结果
qplot函数的参数同样可以是已有变量的某种组合 > qplot(carat, x*y*z, data=diamonds)
展示体积(x*y*z
,由边长的乘积大致计算得到)与重量(carat)之间的关系
2,颜色、大小、形状和其他图形属性
添加图形属性
colour函数,改变点图点的颜色 > qplot(carat, price, data=diamonds, colour=color)
同时通过colour函数对不同color值的点进行颜色分组
shape函数,改变点图点的形状 > qplot(carat, price, data=diamonds, shape=cut)
同时通过shape函数对不同cut值的点进行形状分组
I()函数,手动设定固定值图形属性 > qplot(carat, price, data=diamonds, colour=I('red'), size=I(2))
colour=I(‘red’) 图形中所有点均为红色,size=I(2) 图形中所有点大小均为2
alpha函数,设置透明度 > qplot(carat, price, data=diamonds, alpha=I(1/10))
alpha函数取值从0(完全透明)到1(完全不透明)
总结:颜色和形状适合于分类变量,而大小适合于连续变量
3,几何对象
可通过改变几何对象(简写为geom)绘制其他图形
- geom=“point”,散点图,qplot()默认设置;
- geom=“smooth”,拟合一条平滑曲线,并将曲线和标准误展示在图中;
- geom=“boxplot”,箱线图;
- geom