ggplot2绘图入门系列之三:位置调整与条形图

摘要:
位置调整用于微调同一层中元素的位置。它包括五个设置:堆栈、闪避、填充、身份和抖动。我们使用条形图来显示其用法。我们仍然使用mpg数据集,其中使用的变量是类别,即生产的汽车类型和生产年份。以下条形图是每种类型车辆数量的集合,以年份为分组变量。我们首先加载扩展包,然后使用频率表

    位置调整(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)
ggplot2绘图入门系列之三:位置调整与条形图第1张
ggplot2绘图入门系列之三:位置调整与条形图第2张
ggplot2绘图入门系列之三:位置调整与条形图第3张
ggplot2绘图入门系列之三:位置调整与条形图第4张

可以看到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增长率")
ggplot2绘图入门系列之三:位置调整与条形图第5张
转载于:http://r-ke.info/2012/02/08/ggplot2-intro-3.html

免责声明:文章转载自《ggplot2绘图入门系列之三:位置调整与条形图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spark On Yarn:提交Spark应用程序到Yarn使用echarts插件做图表常见的几个问题(五)——图形的两种渲染方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

css实现步骤条

实现效果 html <ul class="steps"> <li class="active">申请完成</li> <li class="active">资料上传</li> <li>专员审核</...

鼠标经过a盒子显示b盒子?(js)

遇到一个问题,就是鼠标经过1688,盒子不显示。 分析:可能是鼠标经过的行为被阻止了。或者是哪个冒泡了。(可能被一级栏目的A 阻止了) 解决:不用display:none;/block;组合,用js: <div class="header_top"> <div class="inbox wrap clearfix">      ...

js开启和关闭页面滚动【亲测有效】

在移动端的页面开发过程中,经常会遇到点击弹框禁止页面滚动的情景,下面就来说下具体的做法。。。 第一步:构建一个函数 function bodyScroll(event){ event.preventDefault(); } 第二步:点击禁止页面滚动 $(".button").click(function(){ document.body....

3D画廊

3D画廊 之前我都是写的学习的内容,我在写这些教程时遇到有趣的炫酷的小例子也会专门拿出来写一篇文章,今天就写一个酷炫的小例子,叫3D画廊,它是属于ViewPage的进阶版。 此项目下载地点:https://github.com/qySvip/3D-gallery 下面的指示器是使用的一大神的第三方库,会在文章下方简单讲述一下。 效果图 3D画廊的实现 首...

Delphi中Form的position属性与代码自定义窗体位置

通过Form的Position属性可设置窗体的初始位置,如选择DesktopCenter为桌面中心,ScreenCenter为屏幕中心,等等。 这个属性在很多时候简化了程序代码。 但是,如果设置了position为ScreenCenter和DesktopCenter等,在窗体oncreate和onshow事件中使用代码控制窗体的位置就会不成功了,无论设置S...

【CSS】position:relative和position:absolute

position:relative相对定位 1. 如何定位?每个元素在页面的普通流中会“占有”一个位置,这个位置可以理解为默认值,而相对定位就是将元素偏离元素的默认位置,但普通流中依然保持着原有的默认位置。(在父级节点的content-box区定位,父级节点有文字的话,元素的默认位置则是紧随文字)2. 不会改变行内元素的display属性。3. 并没有脱离...