[关闭]
@Macux 2015-12-01T06:50:41.000000Z 字数 3474 阅读 941

R语言_ggplot2_Lv1_Position

R语言_学习笔记


  1. > mpg2 <- subset(mpg,cyl!=5 & drv %in% c("4","f")) #注意"%in%"和"=="的区别。
  2. > p1 <- ggplot(mpg2,aes(cty,hwy)) + geom_point(aes(color=factor(cyl))) + scale_color_brewer(palette="Set1")
  3. > p1 + facet_grid(.~cyl)

此处输入图片的描述


  1. > p2 <- ggplot(mpg2,aes(cty)) + geom_histogram(binwidth=2,aes(fill=factor(cyl)))
  2. > p2 + facet_grid(cyl~.)

此处输入图片的描述


  1. > p3 <- ggplot(mpg2,aes(cty,hwy))
  2. > p3 + geom_point(aes(color=drv,shape=cyl)) + facet_grid(drv~cyl, margins="cyl")
  3. #暂时只想到用颜色和样式或颜色和透明度来描述不同行不同列的点。

此处输入图片的描述


  1. > p3 + geom_point(colour="orange2",alpha=.4,size=3)+ facet_grid(cyl+drv~.)

此处输入图片的描述


(1)、分组是在一个大的数据集中来作图,只是会用不同的属性来标示不同的变量。
(2)、分组变量 是把同一张图内的数据分成几个部分来处理。
(3)、有时你即使做了分组,也达不到你想要的效果。例如:

  1. > dia <- subset(diamonds,color %in%c("D","E","G","J"))
  2. > ggplot(dia,aes(carat,price)) + geom_point(aes(color=color))

此处输入图片的描述

(1)、分面则是同时在数据集的多个子集上做出相同的图。
(2)、分面变量是把数据分割成几个部分,每个部分分别画在一张小图里。
(3)、分面后,眼前突然豁然开朗,它恰如其分地达到你想要的效果。

  1. > ggplot(dia,aes(carat,price)) + geom_point(aes(color=color)) + facet_grid(.~color)

此处输入图片的描述


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

此处输入图片的描述

  1. > ggplot(diamonds,aes(cut)) + geom_bar(aes(fill=cut),position="dodge") + facet_grid(.~color) +theme(axis.text.x = element_text(angle = 90, size =8,hjust = 1,colour = "grey50"),legend.position="none")

此处输入图片的描述

分面后发现,图例已是多余,故此处将其剔除。


  1. > p4 <- ggplot(mpg2,aes(displ,hwy)) +geom_point(colour="blue2",alpha=.4,size=3)
  2. > p4 + facet_grid(cyl~drv,margins=T)

此处输入图片的描述


  1. > library(plyr)
  2. > movies$decade <- round_any(movies$year,10,floor)
  3. > ggplot(subset(movies,decade>1890),aes(rating)) + geom_histogram(aes(y= ..density..,fill=factor(decade) ),binwidth=0.3) + facet_wrap(~decade,ncol=5)

此处输入图片的描述


  1. > library(reshape2)
  2. > em <- melt(economics,id="date")
  3. > ggplot(em,aes(date,value)) + geom_line(aes(group=variable,colour=variable)) + facet_grid(variable~.,scale="free_y") + scale_color_brewer(palette="Set1")

此处输入图片的描述


  1. > mpg3 <- within(mpg2, {model <- reorder(model, cty)
  2. manufacturer <- reorder(manufacturer, -cty)
  3. })
  4. > models <- ggplot(mpg3,aes(cty,model)) + geom_point(aes(color=manufacturer))
  5. > models + facet_grid(manufacturer ~ ., scales = "free", space = "free") + theme(strip.text.y= element_text(angle = 0))

此处输入图片的描述


  1. > mpg4 <- subset(mpg, manufacturer %in% c("audi", "volkswagen", "jeep"))
  2. > base <- ggplot(mpg4, aes(fill = model)) +geom_bar(position = "dodge")

(1)、生肉,极度不漂亮

  1. > base + aes(x = model) +facet_grid(. ~ manufacturer,)

此处输入图片的描述

(2)、五分熟,但还是不漂亮

  1. > base + aes(x = model) +facet_grid(. ~ manufacturer,space="free")

此处输入图片的描述

(3)、七分熟,但仍不完美

  1. > base + aes(x = model) +facet_grid(. ~ manufacturer,scales="free_x")

此处输入图片的描述

(4)、熟透了,非常漂亮

  1. > base + aes(x = model) +facet_grid(. ~ manufacturer, scales = "free_x", space = "free") + labs(x="manufacturer")

此处输入图片的描述


  1. > po <- ggplot(mpg2,aes(cty,hwy)) + labs(x=NULL,y=NULL)

(1)、控制每个部分的长度

  1. > mpg2$disp_ww <- cut_interval(mpg2$displ, length = 1)
  2. > po + facet_wrap(~disp_ww,nrow=1) + theme(legend.position="none") + geom_point(aes(color=disp_ww))

此处输入图片的描述

(2)、控制划分的数目

  1. > mpg2$disp_wn <- cut_interval(mpg2$displ, n = 6)
  2. > po + facet_wrap(~disp_wn,nrow=1) + theme(legend.position="none") + geom_point(aes(color=disp_wn))

此处输入图片的描述

(3)、控制有相同数目点的个数

  1. > mpg2$disp_nn <- cut_number(mpg2$displ, n = 6)
  2. > po + facet_wrap(~disp_nn,nrow=1) + theme(legend.position="none") + geom_point(aes(color=disp_nn))

此处输入图片的描述

(0)、生肉

  1. > io <- ggplot(mtcars,aes(disp,wt)) + geom_smooth(color="skyblue3") + geom_point(color="darkorange")
  2. > io

此处输入图片的描述

(1)、设定标度范围时,任何超出此范围的数据都会被删除,即对原数据集取子集,再重新制图。
(此处相当于利用抽取出来的子集,重新拟合。)

  1. #两条语句等价,都写出来纯属方便理解
  2. > io + xlim(325,500)
  3. > io + scale_x_continuous(xlim=c(325,500))

此处输入图片的描述

(2)、设定坐标系范围,用的仍是原来的数据集(还是熟悉的配方,还是熟悉的味道),只不过只展示一小片图形区域,相当于用放大镜来看图形。

  1. > io + coord_cartesian(xlim=c(325,500))

此处输入图片的描述

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