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

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

时间: 2024-08-02 06:26:32

ggplot2绘图入门系列之三:位置调整与条形图的相关文章

ggplot2绘图入门系列之二:图层控制与直方图

如前文所述,ggplot2使用图层将各种图形元素逐步添加组合,从而形成最终结果.第一层必须是原始数据层,其中data参数控制数据来源,注意数据形式只能是数据框格式.aes参数控制了对哪些变量进行图形映射,以及映射方式,aes是Aesthetic的缩写. 下面我们来绘制一个直方图作为示例.数据集仍采取mpg,对hwy变量绘制直方图.首先加载了扩展包,然后用ggplot函数建立了第一层,hwy数据映射到X轴上:使用+号增加了第二层,即直方图对象层.此时p被视为一种层对象,使用summary函数可得到

ggplot2绘图入门系列之一:导论

1 什么是ggplot2 ggplot2是用于绘图的R语言扩展包,其理念根植于<Grammar of Graphics>一书.它将绘图视为一种映射,即从数学空间映射到图形元素空间.例如将不同的数值映射到不同的色彩或透明度.该绘图包的特点在于并不去定义具体的图形(如直方图,散点图),而是定义各种底层组件(如线条.方块)来合成复杂的图形,这使它能以非常简洁的函数构建各类图形,而且默认条件下的绘图品质就能达到出版要求. 2 与lattice包的比较 ggplot2和lattice都属于高级的格点绘图

ggplot2绘图入门系列之五:时间序列(完)

ggplot2包也能对时间序列数据绘图,但在处理上需要有些注意的地方.下面我们以上证指数为例进行作图,首先利用quantmod包从yahoo数据源获取从1997年以来的数据,存于变量SSEC中,抽取收盘数字,然后分别提取时间数据和指数数值,绘图结果如下图. 1 library(quantmod) 2 library(ggplot2) 3 getSymbols('^SSEC',src='yahoo',from = '1997-01-01') 4 close <- (Cl(SSEC)) 5 time

ggplot2绘图入门系列之四:再说散点图

1 色彩和形状的控制 数据特征不仅可以用坐标来表示,也可以用不同的色彩或形状来表示.仍以mpg数据集为例,所用到的变量有cty(城市中行驶距离),hwy(高速路行驶距离),displ(排量大小),year(生产年份) 1 library(ggplot2) 2 p <- ggplot(mpg, aes(cty, hwy)) 3 p1 <- p + geom_point(aes(colour = factor(year),shape = factor(year), size = displ), a

OPEN(SAP) UI5 学习入门系列之三:MVC (上) - 模型

这次我们来一起学习MVC,这个专题分为两个小节,本次主要是总览以及模型,下一次着重会介绍视图以及控制器,因为控制器其实没有太多可以讲的,所以和视图合并在一块. 1 Model View Controller (MVC)的基本概念 MVC,对于大多数人说,这是一个讲烂了的概念.不过,既然这是一个入门系列,还是要稍微讲一讲. M 代表Model - 模型 一般用来管理数据层,比如绑定后台数据. V 代表View - 视图 一般用来处理展示层,比如具体前端UI的展示. C 代表Controller -

oracle学习入门系列之三Unix、Linux历史及基础

终于翻过了前面两篇,喝杯咖啡提下神,咱们继续前行.这次我们要进行操作系统方面知识了,考虑到当前时间上操作系统的多样性.变化性等,蛤蟆斟酌再三,决定还是Unix/Linux比较符合我们的实际. 开始之前不得不又提几个问题: 1.  Unix 从哪里来 2.  Linux从哪里来 3.  Unix/Linux什么关系 4.  怎么入手这系统 哎呀,看见这些问题蛤蟆就有点老激动了,最喜欢唠嗑的就是这些鸡皮蒜毛的事情了.让我们赶紧开始吧~~不急,留个邮箱先 本人邮箱:[email protected]

OPEN(SAP) UI5 学习入门系列之三:MVC (下) - 视图与控制器

继续来学习UI5的MVC模型吧,这次我们来探讨视图与控制器. 1 视图 在MVC中,视图用来定义和渲染UI.在UI5中,视图的类型是可以自定义的,除了以下预定义的四种视图类型之外,你也可以定制自己的视图类型. 预定义的四种视图类型如下: XML view JSON view JS view HTML view 如果你想定义自己的视图类型,可以通过扩展 sap.ui.core.mvc.View 这个基类来实现. 1.1 视图的加载 视图可以通过异步(async)或者同步(sync)的方式加载,默认

D3入门系列(2)--简单的条形图、折线图

SVG画布 HTML 5 提供两种强有力的"画布":SVG 和 Canvas. SVG的特点: SVG 绘制的是矢量图,因此对图像进行放大不会失真 基于 XML,可以为每个元素添加 JavaScript 事件处理器 每个图形均视为对象,更改对象的属性,图形也会改变 不适合游戏应用 Canvas特点: 绘制的是位图,图像放大后会失真 不支持事件处理器 能够以 .png 或 .jpg 格式保存图像 适合游戏应用 那么,对于数据可视化,SVG的优势就显而易见了,而且D3中很多图形生成器也是只

《鸡啄米C++编程入门系列》系列技术文章整理收藏

<鸡啄米C++编程入门系列>系列技术文章整理收藏 收藏整理鸡啄米C++编程入门系列文章,供个人和网友学习C++时参考 1鸡啄米:C++编程入门系列之前言 2鸡啄米:C++编程入门系列之一(进制数) 3鸡啄米:C++编程入门系列之二(原码.反码与补码) 4鸡啄米:C++编程入门系列之三(VS2010的使用介绍) 5鸡啄米:C++编程入门系列之四(数据类型) 6鸡啄米:C++编程入门系列之五(运算符和表达式) 7鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构) 8鸡啄米:C++编程入