ggplot2代码文档.docx

上传人:b****1 文档编号:3396508 上传时间:2023-05-05 格式:DOCX 页数:57 大小:45.06KB
下载 相关 举报
ggplot2代码文档.docx_第1页
第1页 / 共57页
ggplot2代码文档.docx_第2页
第2页 / 共57页
ggplot2代码文档.docx_第3页
第3页 / 共57页
ggplot2代码文档.docx_第4页
第4页 / 共57页
ggplot2代码文档.docx_第5页
第5页 / 共57页
ggplot2代码文档.docx_第6页
第6页 / 共57页
ggplot2代码文档.docx_第7页
第7页 / 共57页
ggplot2代码文档.docx_第8页
第8页 / 共57页
ggplot2代码文档.docx_第9页
第9页 / 共57页
ggplot2代码文档.docx_第10页
第10页 / 共57页
ggplot2代码文档.docx_第11页
第11页 / 共57页
ggplot2代码文档.docx_第12页
第12页 / 共57页
ggplot2代码文档.docx_第13页
第13页 / 共57页
ggplot2代码文档.docx_第14页
第14页 / 共57页
ggplot2代码文档.docx_第15页
第15页 / 共57页
ggplot2代码文档.docx_第16页
第16页 / 共57页
ggplot2代码文档.docx_第17页
第17页 / 共57页
ggplot2代码文档.docx_第18页
第18页 / 共57页
ggplot2代码文档.docx_第19页
第19页 / 共57页
ggplot2代码文档.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ggplot2代码文档.docx

《ggplot2代码文档.docx》由会员分享,可在线阅读,更多相关《ggplot2代码文档.docx(57页珍藏版)》请在冰点文库上搜索。

ggplot2代码文档.docx

ggplot2代码文档

附录代码

library(ggplot2)

library(gtable)

library(grid)##需要editGrob()函数

p<-qplot(wt,mpg,data=mtcars,colour=cyl,main="Titletext")

p

##修改图形元件:

图形题目字体改为斜体红色

g<-ggplotGrob(p)

idx<-which(g$layout$name=="title")

g$grobs[[idx]]<-editGrob(g$grobs[[idx]],gp=gpar(fontface="italic",col="red"))

##重新绘制

grid.draw(g)

第一章代码:

 

第二章代码:

library(ggplot2)

##图2.1无代码

 

######章节2.2

set.seed(1410)#让样本可重复

dsmall<-diamonds[sample(nrow(diamonds),100),]

 

######章节2.3

qplot(carat,price,data=diamonds)

 

######章节2.3

qplot(log(carat),log(price),data=diamonds)

 

######章节2.3

qplot(carat,x*y*z,data=diamonds)

 

##图2.2将color变量映射到点的颜色(左),cut变量映射到点的形状(右)

qplot(carat,price,data=dsmall,colour=color)

qplot(carat,price,data=dsmall,shape=cut)

 

##图2.3将alpha值从1/10(左)变动到1/100(中)再到

##1/200(右),来看大部分的点在哪里进行重叠。

qplot(carat,price,data=diamonds,alpha=I(1/10))

qplot(carat,price,data=diamonds,alpha=I(1/100))

qplot(carat,price,data=diamonds,alpha=I(1/200))

 

##图2.4

##重量与价格的散点图中加入了平滑曲线。

左图为dsmall数据集,右图为完整数据集。

qplot(carat,price,data=dsmall,geom=c("point","smooth"))

qplot(carat,price,data=diamonds,geom=c("point","smooth"))

 

##图2.5span参数的作用。

左图是span=0.2,右图是span=1。

qplot(carat,price,data=dsmall,geom=c("point","smooth"),span=0.2)

qplot(carat,price,data=dsmall,geom=c("point","smooth"),span=1)

 

##图2.6在运用广义可加模型作为平滑器时formula参数的作用。

左图是

##formula=y~s(x),右图是formula=y~s(x,bs='cs')。

library(mgcv)

qplot(carat,price,data=dsmall,geom=c("point","smooth"),method="gam",

    formula=y~s(x))

qplot(carat,price,data=dsmall,geom=c("point","smooth"),method="gam",

    formula=y~s(x,bs="cs"))

 

##图2.7在运用线性模型作为平滑器时formula参数的作用。

左图是formula=

##y~x的默认值,右图是formula=y~ns(x,5)。

library(splines)

qplot(carat,price,data=dsmall,geom=c("point","smooth"),method="lm")

qplot(carat,price,data=dsmall,geom=c("point","smooth"),method="lm",

    formula=y~ns(x,5))

 

##图2.8(书中无代码)

##利用扰动点图(左)和箱线图(右)来考察以颜色为条件的每克拉价格的分布。

##随着颜色的改变(从左到右),每克拉价格的跨度逐渐减小,但分布的中位数没有明显的变化。

qplot(color,price/carat,data=diamonds,geom="jitter")

qplot(color,price/carat,data=diamonds,geom="boxplot")

 

##图2.9改变alpha的取值,从左到右分别为1/5,1/50和

##1/200。

随着不透明度的降低,

##我们可以看出数据集中的地方。

然而,箱线图依然是一个更好的选择。

qplot(color,price/carat,data=diamonds,geom="jitter",alpha=I(1/5))

qplot(color,price/carat,data=diamonds,geom="jitter",alpha=I(1/50))

qplot(color,price/carat,data=diamonds,geom="jitter",alpha=I(1/200))

 

##图2.10展示钻石重量的分布。

左图使用的是geom='histogram'右图使用的是

##geom='density'。

qplot(carat,data=diamonds,geom="histogram")

qplot(carat,data=diamonds,geom="density")

 

##图2.11变动直方图的组距可以显示出有意思的模式。

从左到右,组距分别为

##1,0.1和0.01。

只有重量在0到3克拉之间的钻石显示在图中。

qplot(carat,data=diamonds,geom="histogram",binwidth=1,xlim=c(0,

    3))

qplot(carat,data=diamonds,geom="histogram",binwidth=0.1,xlim=c(0,

    3))

qplot(carat,data=diamonds,geom="histogram",binwidth=0.01,xlim=c(0,

    3))

 

##图2.12

##当一个分类变量被映射到某个图形属性上,几何对象会自动按这个变量进行拆分。

##左图是重叠的密度曲线图,右图是堆叠起来的直方图。

qplot(carat,data=diamonds,geom="density",colour=color)

qplot(carat,data=diamonds,geom="histogram",fill=color)

 

##图2.13钻石颜色的条形图。

左图显示的是分组的计数,右图是按weight=carat

##进行加权,展示了每种颜色的钻石的总重量。

qplot(color,data=diamonds,geom="bar")

qplot(color,data=diamonds,geom="bar",weight=carat)+scale_y_continuous("carat")

 

##图2.14

##衡量失业程度的两张时序图。

左图是失业人口的比例,右图是失业星期数的中位

##数。

图形是用geom='line'进行绘制的。

qplot(date,unemploy/pop,data=economics,geom="line")

qplot(date,uempmed,data=economics,geom="line")

 

##图2.15

##展示失业率和失业时间长度之间关系的路径图。

左图是重叠在一起的的散点图和路

##径图,右图只有路径图,其中年份用颜色进行了展示。

year<-function(x)as.POSIXlt(x)$year+1900

qplot(unemploy/pop,uempmed,data=economics,geom=c("point","path"))

qplot(unemploy/pop,uempmed,data=economics,geom="path",colour=year(date))

 

##图2.16

##展示以颜色为条件的重量的直方图。

左图展示的是频数,右图展示的是频率。

频率

##图可以使得比较不同组的分布时不会受该组样本量大小的影响。

高质量的钻石

##(颜色D)在小

##尺寸上的分布是偏斜的,而随着质量的下降,重量的分布会变得越来越平坦。

qplot(carat,data=diamonds,facets=color~.,geom="histogram",binwidth=0.1,

    xlim=c(0,3))

qplot(carat,..density..,data=diamonds,facets=color~.,geom="histogram",

    binwidth=0.1,xlim=c(0,3))

 

######章节2.7

qplot(carat,price,data=dsmall,xlab="Price($)",ylab="Weight(carats)",

    main="Price-weightrelationship")

 

######章节2.7

qplot(carat,price/carat,data=dsmall,ylab=expression(frac(price,carat)),

    xlab="Weight(carats)",main="Smalldiamonds",xlim=c(0.2,1))

 

######章节2.7

qplot(carat,price,data=dsmall,log="xy")

第三章代码:

library(ggplot2)

##图3.1发动机排量(以升为单位displ)对高速公路耗油量(英里每加仑

##hwy)散点图。

##根据汽缸数目着色。

该图可以发现影响燃油经济性最重要的因素:

发动机排量大

##小。

qplot(displ,hwy,data=mpg,colour=factor(cyl))

##图3.2:

无代码

 

##图3.3更复杂的图形一般没有特定的名称。

这幅图在图3.1的基础上对每个

##组添加了回归线。

这个图应该叫什么名字呢?

qplot(displ,hwy,data=mpg,colour=factor(cyl))+geom_smooth(data=subset(mpg,

    cyl!

=5),method="lm")

##图3.6一个含有分面和多个图层的复杂图形

qplot(displ,hwy,data=mpg,facets=.~year)+geom_smooth()

##图3.8

##四种不同标度的图例。

从左到右依次是:

连续型变量映射到大小和颜色,离散型变

##量映射到形状和颜色。

x<-1:

10

y<-factor(letters[1:

5])

qplot(x,x,size=x)

qplot(x,x,1:

10,colour=x)

qplot(y,y,1:

10,shape=y)

qplot(y,y,1:

10,colour=y)

##图3.9

##三种不同坐标系的坐标轴和网格线:

笛卡尔(Cartesian)、半对数(semi-log)和极

##坐标系(polar)。

极坐标系展示了非笛卡尔坐标系的缺点:

很难画好坐标轴。

x1<-c(1,10)

y1<-c(1,5)

p<-qplot(x1,y1,geom="blank",xlab=NULL,ylab=NULL)+theme_bw()

p

p+coord_trans(y="log10")

p+coord_polar()

p<-qplot(displ,hwy,data=mpg,colour=factor(cyl))

summary(p)

#保存图形对象

save(p,file="plot.rdata")

#读入图形对象

load("plot.rdata")

#将图片保存成png格式

ggsave("plot.png",width=5,height=5)

 

第四章代码

library(ggplot2)

##通过ggplot创建图形对象

p<-ggplot(diamonds,aes(carat,price,colour=cut))

##添加“点”几何对象

p<-p+layer(geom="point")

 

##例:

手动创建图形对象并添加图层

p<-ggplot(diamonds,aes(x=carat))

p<-p+layer(geom="bar",geom_params=list(fill="steelblue"),stat="bin",

    stat_params=list(binwidth=2))

p

##应用“快捷函数”,得到与上例相同的图形

p+geom_histogram(binwidth=2,fill="steelblue")

 

##在用ggplot创建的图形对象上添加图层

ggplot(msleep,aes(sleep_rem/sleep_total,awake))+geom_point()

#等价于

qplot(sleep_rem/sleep_total,awake,data=msleep)

#也可以给qplot添加图层

qplot(sleep_rem/sleep_total,awake,data=msleep)+geom_smooth()

#等价于

qplot(sleep_rem/sleep_total,awake,data=msleep,geom=c("point","smooth"))

#或

ggplot(msleep,aes(sleep_rem/sleep_total,awake))+geom_point()+geom_smooth()

##例:

summary给出图形对象的默认设置和每个图层的信息

p<-ggplot(msleep,aes(sleep_rem/sleep_total,awake))

summary(p)

p<-p+geom_point()

summary(p)

##例:

用不同的数据初始化后添加相同的图层

library(scales)

bestfit<-geom_smooth(method="lm",se=F,colour=alpha("steelblue",0.5),

    size=2)

qplot(sleep_rem,sleep_total,data=msleep)+bestfit

qplot(awake,brainwt,data=msleep,log="y")+bestfit

qplot(bodywt,brainwt,data=msleep,log="xy")+bestfit

##用%*%添加新的数据集来代替原来的数据集

p<-ggplot(mtcars,aes(mpg,wt,colour=cyl))+geom_point()

p

mtcars<-transform(mtcars,mpg=mpg^2)

p%+%mtcars

##aes函数的参数

aes(x=weight,y=height,colour=age)

#也可以使用变量的函数值作为参数

aes(weight,height,colour=sqrt(age))

p<-ggplot(mtcars)

summary(p)

p<-p+aes(wt,hp)

summary(p)

##使用默认的参数映射来添加图层

p<-ggplot(mtcars,aes(x=mpg,y=wt))

p+geom_point()

##图4.1修改图形属性。

用factor(cyl)修改颜色(左),用disp修改y坐标(右)。

p+geom_point(aes(colour=factor(cyl)))

p+geom_point(aes(y=disp))

p<-ggplot(mtcars,aes(mpg,wt))

p+geom_point(colour="darkblue")

#注意这里将颜色映射到'darkblue'与上面将颜色设定给'darkblue'的区别

p+geom_point(aes(colour="darkblue"))

#Thedifferencebetween(left)settingcolourto\code{'darkblue'}and

#(right)mappingcolourto\code{'darkblue'}.When\code{'darkblue'}

#ismappedtocolour,itistreatedasaregularvalueandscaledwith

#thedefaultcolourscale.Thisresultsinpinkishpointsandalegend.

##图4.2

##将颜色设定为'darkblue'(左)与将颜色映射到'darkblue'(右)的区别。

当颜色映

##射到'darkblue'时,'darkblue'将被看作一个普通的字符串,使用默认的颜色标

##度进行标度转换,结果得到了粉红色的点和图例。

qplot(mpg,wt,data=mtcars,colour=I("darkblue"))

qplot(mpg,wt,data=mtcars,colour="darkblue")

##图4.3正确分组时(分组变量group=

##Subject)每个个体的折线图(左)。

错误的分组时连

##接所有观测点的折线图(右)。

此处省略了分组图形属性,效果等同于group=

##1。

data(Oxboys,package="nlme")

#左图的代码

p<-ggplot(Oxboys,aes(age,height,group=Subject))+geom_line()

#或

qplot(age,height,data=Oxboys,group=Subject,geom="line")

#右图的代码

qplot(age,height,data=Oxboys,geom="line")

##图4.4

##给Oxboys数据添加光滑曲线。

左图用了和折线图同样的分组变量,得到了每个男

##孩的拟合直线。

右图在平滑层里用了aes(group=1),得到了所有男孩的拟合直

##线。

左图

p+geom_smooth(aes(group=Subject),method="lm",se=F)

#或

qplot(age,height,data=Oxboys,group=Subject,geom="line")+geom_smooth(method="lm",

    se=F)

#右图

p+geom_smooth(aes(group=1),method="lm",size=2,se=F)

#或

qplot(age,height,data=Oxboys,group=Subject,geom="line")+geom_smooth(aes(group=1),

    method="lm",size=2,se=F)

 

##图4.5

##如果想用箱线图来查看每个时期的身高分布,默认的分组是正确的(左图)。

如果

##想用\texttt{geom_line()}添加每个男孩的轨迹,就需要在新图层里设定

##aes(group=Subject)(右图)。

左图

qplot(Occasion,height,data=Oxboys,geom="boxplot")

#右图

qplot(Occasion,height,data=Oxboys,geom="boxplot")+geom_line(aes(group=Subject),

    colour="#3366FF")

#或

boysbox<-ggplot(Oxboys,aes(Occasion,height))+geom_boxplot()

boysbox+geom_line(aes(group=Subject),colour="#3366FF")

##图4.6

##对于线条和路径,线段的图形属性是由起始点的图形属性决定的。

如果颜色是离

##散的(左图),在相邻的颜色间插入其他颜色是没有任何意义的。

如果颜色是连续

##的(右图),可以在相邻的颜色间进行插补,但默认条件下R不会这样做。

df<-data.frame(x=1:

3,y=1:

3,colo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2