全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2836 4
2012-12-06
位置调整(Position adjustments)是针对同一图层内元素的位置进行微调的方法。它包括五种设置,分别是stack、dodge、fill、identity、jitter。

我们用条形图来展示其用法,仍使用mpg数据集,其中用到的变量是class,即生产汽车的类型,以及year生产年份。下面的条形图是将各类型的汽车数量进行汇集,并以年份作为分组变量。我们首先载入扩展包,然后用频数表对数据进行大致的了解,最后绘制了四种条形图。
library(ggplot2)with(mpg,table(class,year))p <- ggplot(data=mpg,aes(x=class,fill=factor(year)))p + geom_bar(position='dodge')p + geom_bar(position='stack')p + geom_bar(position='fill')p + geom_bar(position='identity',alpha=0.3)










可以看到dodge方式是将不同年份的数据并列放置;stack方式是将不同年份数据堆叠放置,这也是geom_bar的默认处理方式;fill方式和stack类似,但Y轴不再是计数,而是以百分比显示;identity方式是不做任何改变直接显示出来,所以需要设置透明度才能看得清楚。

geom_bar是绘制条状几何对象,所以也可以用不经汇集的原始数据进行绘图。下面我们用2001到2010年间的美国GDP增长率举个例子。

y=c(1.1,1.8,2.5,3.6,3.1,2.7,1.9,-0.1,-3.5,3.0)x=2001:2010data=data.frame(x,y)p=ggplot(data,aes(x,y,fill=y))p+geom_bar(stat="identity")+     geom_abline(intercept = 0, slope = 0,size=1,colour='gray')+    geom_text(aes(label=y),hjust=0.5, vjust=-0.5 )+    scale_y_continuous(limits=c(-3.8,4.2))+    labs(x='年份', y='GDP增长率%')+    opts(title = "美国GDP增长率")




通过电子邮件发送BlogThis!共享给 Twitter共享给 Facebook



标签: ggplot2, 绘图



3 条评论:

  • gardenia.kitty6/19/2012 4:05 上午

    你好,最近在学习r,发现了你的blog,十分喜欢。今天参考你的这篇博文学习ggplot,想请教下这个with 和 table到底是怎么使用的
    还有提取出来的这个表格
    year
    class 1999 2008
    2seater 2 3
    compact 25 22
    midsize 20 21
    minivan 6 5
    pickup 16 17
    subcompact 19 16
    suv 29 33
    是一个list还是一个什么?如果我想直接由数据生成,类似的应该怎么做?

    回复
    回复

    • 写长城的诗6/19/2012 7:17 上午

      你好,table是一个生成二维频率表的函数,它会自动为落在两个变量中的样本计数。为了能直接操作data.frame中的变量,所以需要用到with函数,如果不用with的话,可以这么弄:table(mpg$class,mpg$year)

      提取中的表格是一种table格式,你可以通过class函数来了解任何一个对象的属性。

      不明白你说的直接由数据生成是什么意思?生成什么东西?





    • gardenia.kitty6/19/2012 4:28 下午

      我昨天继续看了下,year和class是dimensionname,平时一般只有colname和rowname所以没弄明白。
      我是想知道,怎么给data.frame添加dimensionname。我一会查看看,应该就找到了。
      非常感谢













二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-6 22:42:43
我来看看先
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-8 22:41:40
看看
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-10 10:27:11
非常感谢楼主
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-28 14:30:32
看不到图层呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群