[关闭]
@Macux 2015-12-01T06:51:14.000000Z 字数 2345 阅读 921

R语言_ggplot2_Lv1_Gramma

R语言_学习笔记


1、ggplot2简介:

2、准备工作

  1. > library(labeling)
  2. > library(ggplot2)

3、ggplot()的入门

设定默认的x和y的映射为mpt和wt。但此时还无法呈现图形,因为还未构成一个完整的图层。

  1. > p2 <- ggplot(mtcars)+aes(mpg,wt)

有数据,有映射,但无几何对象,即R不知道要如何呈现图像。

  1. > p2 + geom_point(aes(colour=factor(cyl)),size=2.7)

为添加几何对象(散点图),此时第一个图层就完成了。
此处输入图片的描述

重新添加几何对象时,这次修改映射到y轴的变量。(只修改数据,但y轴的名称未修改)

  1. > p2 + geom_point(aes(colour=factor(cyl),y = disp),size=2.7)

此处输入图片的描述

不仅修改映射,同时修改y轴的名称。此时就完成了整个修改过程,但在这张画布上,仍然只有一个图层。

  1. > px <-p2 + geom_point(aes(colour=factor(cyl),y = disp),size=2.7) + scale_y_continuous("disp")
  2. #此处可用参数scale_colour_brewer(palette="Set1")来找到自己喜欢的配色方案。若映射到颜色的数据是连续型的变量,则用scale_colour_gradient()。由于懒,所以就不上传新图了~
  3. > px

此处输入图片的描述

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

  1. > px2 <- px + geom_line(aes(colour=factor(cyl),y=disp))
  2. > px2

此处输入图片的描述

继续添加新的图层(拟合曲线)

  1. > library(scales)
  2. > px2 + geom_smooth(aes(y=disp),method="lm",colour = alpha("orange",0.8),size=0.7)

此处输入图片的描述

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

此处输入图片的描述

在细面图上添加总体的拟合曲线

  1. > p3 + geom_smooth(aes(group=1),method="lm",size=1.7,color="black") #group=1表示此时不分组,即对整体数据进行拟合。

此处输入图片的描述

添加箱线图图层

  1. > p4 <- ggplot(Oxboys,aes(Occasion,height,fill=Occasion)) + geom_boxplot()
  2. > p4 + geom_line(aes(group=Subject),colour=alpha("black",0.3))

此处输入图片的描述

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

此处输入图片的描述

调整前的生肉:

  1. > ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="identity")

此处输入图片的描述
position="identity"表示不做任何调整。这显然不合适。因为先画的会被后画的挡住。

调整后的效果:
(1)、堆叠法。默认调整方法。

  1. > ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="stack")

此处输入图片的描述

2、并列

  1. ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="dodge")

此处输入图片的描述

3、填充

  1. ggplot(diamonds,aes(x=color)) + geom_bar(aes(fill=cut),position="fill")

此处输入图片的描述

4、扩展法,即用频率多边形(面积)来代替传统的直方图

  1. > d <- ggplot(diamonds, aes(carat)) + xlim(0, 3)
  2. > d + stat_bin(aes(ymax = ..count..,fill=color,color=color),binwidth = 0.1, geom = "area")

此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注