ggplot2绘图入门系列之三:位置调整与条形图
位置调整(Position adjustments)是针对同一图层内元素的位置进行微调的方法。它包括五种设置,分别是stack、dodge、fill、identity、jitter。
我们用条形图来展示其用法,仍使用mpg数据集,其中用到的变量是class,即生产汽车的类型,以及year生产年份。下面的条形图是将各类型的汽车数量进行汇集,并以年份作为分组变量。我们首先载入扩展包,然后用频数表对数据进行大致的了解,最后绘制了四种条形图。
1 library(ggplot2)
2 with(mpg,table(class,year))
3 p <- ggplot(data=mpg,aes(x=class,fill=factor(year)))
4 p + geom_bar(position='dodge')
5 p + geom_bar(position='stack')
6 p + geom_bar(position='fill')
7 p + geom_bar(position='identity',alpha=0.3)
可以看到dodge方式是将不同年份的数据并列放置;stack方式是将不同年份数据堆叠放置,这也是geom_bar的默认处理方式;fill方式和stack类似,但Y轴不再是计数,而是以百分比显示;identity方式是不做任何改变直接显示出来,所以需要设置透明度才能看得清楚。
geom_bar是绘制条状几何对象,所以也可以用不经汇集的原始数据进行绘图。下面我们用2001到2010年间的美国GDP增长率举个例子。
1 y=c(1.1,1.8,2.5,3.6,3.1,2.7,1.9,-0.1,-3.5,3.0)
2 x=2001:2010
3 data=data.frame(x,y)
4 p=ggplot(data,aes(x,y,fill=y))
5 p+geom_bar(stat="identity")+
6 geom_abline(intercept = 0, slope = 0,size=1,colour='gray')+
7 geom_text(aes(label=y),hjust=0.5, vjust=-0.5 )+
8 scale_y_continuous(limits=c(-3.8,4.2))+
9 labs(x='年份', y='GDP增长率%')+
10 opts(title = "美国GDP增长率")
转载于:http://r-ke.info/2012/02/08/ggplot2-intro-3.html