@Macux
2015-12-01T06:50:41.000000Z
字数 3474
阅读 940
R语言_学习笔记
> mpg2 <- subset(mpg,cyl!=5 & drv %in% c("4","f")) #注意"%in%"和"=="的区别。
> p1 <- ggplot(mpg2,aes(cty,hwy)) + geom_point(aes(color=factor(cyl))) + scale_color_brewer(palette="Set1")
> p1 + facet_grid(.~cyl)
> p2 <- ggplot(mpg2,aes(cty)) + geom_histogram(binwidth=2,aes(fill=factor(cyl)))
> p2 + facet_grid(cyl~.)
> p3 <- ggplot(mpg2,aes(cty,hwy))
> p3 + geom_point(aes(color=drv,shape=cyl)) + facet_grid(drv~cyl, margins="cyl")
#暂时只想到用颜色和样式或颜色和透明度来描述不同行不同列的点。
> p3 + geom_point(colour="orange2",alpha=.4,size=3)+ facet_grid(cyl+drv~.)
(1)、分组是在一个大的数据集中来作图,只是会用不同的属性来标示不同的变量。
(2)、分组变量 是把同一张图内的数据分成几个部分来处理。
(3)、有时你即使做了分组,也达不到你想要的效果。例如:
> dia <- subset(diamonds,color %in%c("D","E","G","J"))
> ggplot(dia,aes(carat,price)) + geom_point(aes(color=color))
(1)、分面则是同时在数据集的多个子集上做出相同的图。
(2)、分面变量是把数据分割成几个部分,每个部分分别画在一张小图里。
(3)、分面后,眼前突然豁然开朗,它恰如其分地达到你想要的效果。
> ggplot(dia,aes(carat,price)) + geom_point(aes(color=color)) + facet_grid(.~color)
> ggplot(diamonds,aes(color)) + geom_bar(aes(fill=cut),position="dodge")
> 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")
分面后发现,图例已是多余,故此处将其剔除。
> p4 <- ggplot(mpg2,aes(displ,hwy)) +geom_point(colour="blue2",alpha=.4,size=3)
> p4 + facet_grid(cyl~drv,margins=T)
> library(plyr)
> movies$decade <- round_any(movies$year,10,floor)
> ggplot(subset(movies,decade>1890),aes(rating)) + geom_histogram(aes(y= ..density..,fill=factor(decade) ),binwidth=0.3) + facet_wrap(~decade,ncol=5)
> library(reshape2)
> em <- melt(economics,id="date")
> ggplot(em,aes(date,value)) + geom_line(aes(group=variable,colour=variable)) + facet_grid(variable~.,scale="free_y") + scale_color_brewer(palette="Set1")
> mpg3 <- within(mpg2, {model <- reorder(model, cty)
manufacturer <- reorder(manufacturer, -cty)
})
> models <- ggplot(mpg3,aes(cty,model)) + geom_point(aes(color=manufacturer))
> models + facet_grid(manufacturer ~ ., scales = "free", space = "free") + theme(strip.text.y= element_text(angle = 0))
> mpg4 <- subset(mpg, manufacturer %in% c("audi", "volkswagen", "jeep"))
> base <- ggplot(mpg4, aes(fill = model)) +geom_bar(position = "dodge")
(1)、生肉,极度不漂亮
> base + aes(x = model) +facet_grid(. ~ manufacturer,)
(2)、五分熟,但还是不漂亮
> base + aes(x = model) +facet_grid(. ~ manufacturer,space="free")
(3)、七分熟,但仍不完美
> base + aes(x = model) +facet_grid(. ~ manufacturer,scales="free_x")
(4)、熟透了,非常漂亮
> base + aes(x = model) +facet_grid(. ~ manufacturer, scales = "free_x", space = "free") + labs(x="manufacturer")
> po <- ggplot(mpg2,aes(cty,hwy)) + labs(x=NULL,y=NULL)
(1)、控制每个部分的长度
> mpg2$disp_ww <- cut_interval(mpg2$displ, length = 1)
> po + facet_wrap(~disp_ww,nrow=1) + theme(legend.position="none") + geom_point(aes(color=disp_ww))
(2)、控制划分的数目
> mpg2$disp_wn <- cut_interval(mpg2$displ, n = 6)
> po + facet_wrap(~disp_wn,nrow=1) + theme(legend.position="none") + geom_point(aes(color=disp_wn))
(3)、控制有相同数目点的个数
> mpg2$disp_nn <- cut_number(mpg2$displ, n = 6)
> po + facet_wrap(~disp_nn,nrow=1) + theme(legend.position="none") + geom_point(aes(color=disp_nn))
(0)、生肉
> io <- ggplot(mtcars,aes(disp,wt)) + geom_smooth(color="skyblue3") + geom_point(color="darkorange")
> io
(1)、设定标度范围时,任何超出此范围的数据都会被删除,即对原数据集取子集,再重新制图。
(此处相当于利用抽取出来的子集,重新拟合。)
#两条语句等价,都写出来纯属方便理解
> io + xlim(325,500)
> io + scale_x_continuous(xlim=c(325,500))
(2)、设定坐标系范围,用的仍是原来的数据集(还是熟悉的配方,还是熟悉的味道),只不过只展示一小片图形区域,相当于用放大镜来看图形。
> io + coord_cartesian(xlim=c(325,500))