@Macux
        
        2015-12-01T06:51:14.000000Z
        字数 2345
        阅读 1066
    R语言_学习笔记
1、ggplot2简介:
ggplot()与qplot()的区别
ggplot2()语法中几个十分重要的概念:
2、准备工作
> library(labeling)> library(ggplot2)
3、ggplot()的入门
设定默认的x和y的映射为mpt和wt。但此时还无法呈现图形,因为还未构成一个完整的图层。
> p2 <- ggplot(mtcars)+aes(mpg,wt)
有数据,有映射,但无几何对象,即R不知道要如何呈现图像。
> p2 + geom_point(aes(colour=factor(cyl)),size=2.7)
为添加几何对象(散点图),此时第一个图层就完成了。 

重新添加几何对象时,这次修改映射到y轴的变量。(只修改数据,但y轴的名称未修改)
> p2 + geom_point(aes(colour=factor(cyl),y = disp),size=2.7)

不仅修改映射,同时修改y轴的名称。此时就完成了整个修改过程,但在这张画布上,仍然只有一个图层。
> px <-p2 + geom_point(aes(colour=factor(cyl),y = disp),size=2.7) + scale_y_continuous("disp")#此处可用参数scale_colour_brewer(palette="Set1")来找到自己喜欢的配色方案。若映射到颜色的数据是连续型的变量,则用scale_colour_gradient()。由于懒,所以就不上传新图了~> px

添加新的图层(线条),在新的图层只是添加了不同的几何对象,其余的三个要素与p2是一样的; 
由于在新建px时,修改了默认的y轴映射,所以在新建图层,也要做出一样的修改。否则会添加失败;(其深层次的原因在于,必须要保证该图层上的变量类型与标度要与px上的相匹配。)
> px2 <- px + geom_line(aes(colour=factor(cyl),y=disp))> px2

继续添加新的图层(拟合曲线)
> library(scales)> px2 + geom_smooth(aes(y=disp),method="lm",colour = alpha("orange",0.8),size=0.7)

> library(nlme)> p3 <- ggplot(Oxboys,aes(age,height,group=Subject,colour=Subject))+geom_line()> p3

在细面图上添加总体的拟合曲线
> p3 + geom_smooth(aes(group=1),method="lm",size=1.7,color="black") #group=1表示此时不分组,即对整体数据进行拟合。

添加箱线图图层
> p4 <- ggplot(Oxboys,aes(Occasion,height,fill=Occasion)) + geom_boxplot()> p4 + geom_line(aes(group=Subject),colour=alpha("black",0.3))

> df <- data.frame(x = 1:3, y = 1:3, colour = c(1, 3, 5))> xgrid <- with(df,seq(min(x),max(x),length=500))> interp <- data.frame(x = xgrid,y = approx(df$x,df$y,xout = xgrid)$y,colour = approx(df$x,df$colour,xout = xgrid)$y)> qplot(x,y,data=df,colour=colour,size=I(5)) + geom_line(data=interp,size=2)

调整前的生肉:
> ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="identity")
 
position="identity"表示不做任何调整。这显然不合适。因为先画的会被后画的挡住。
调整后的效果: 
(1)、堆叠法。默认调整方法。
> ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="stack")

2、并列法
ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="dodge")

3、填充法
ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="fill")

4、扩展法,即用频率多边形(面积)来代替传统的直方图
> d <- ggplot(diamonds, aes(carat)) + xlim(0, 3)> d + stat_bin(aes(ymax = ..count..,fill=color,color=color),binwidth = 0.1, geom = "area")
