R Graphics Cookbook 第3章 – Bar Graphs
3.1 基本条形图
library(ggplot2)
library(gcookbook)
pg_mean #这是用到的数据
group weight
1 ctrl 5.032
2 trt1 4.661
3 trt2 5.526
ggplot(pg_mean, aes(x=group, y=weight)) + geom_bar(stat="identity")

x轴是连续变量还是因子,画出的图有所不同,这里的group是因子。
str(pg_mean)
'data.frame': 3 obs. of 2 variables:
$ group : Factor w/ 3 levels "ctrl","trt1",..: 1 2 3 #可以看出group是因子
$ weight: num 5.03 4.66 5.53
用fill设置填充色,用color设置边框颜色
ggplot(pg_mean, aes(x=group, y=weight)) + geom_bar(stat="identity", fill="lightblue", color="black")

用我的计步数据试试:
Sys.setenv(JAVA_HOME='C:/Program Files/Java/jdk1.6.0_33/jre')
library(xlsx)
setwd("d:/shenlb/health")
fitbit <- read.xlsx(file="fitbit2014.xlsx", header=TRUE, sheetIndex=1) #用到JAVA,比read.csv慢了不少
meanMonthStep <- aggregate(fitbit$step, by=list(format(fitbit$date,"%m")), mean)
colnames(meanMonthStep) <- c("month","step") #设置列名
ggplot(meanMonthStep, aes(x=month, y=step)) + geom_bar(stat="identity", fill="lightblue", color="black")

3.2 Grouping Bars Together
cabbage_exp
Cultivar Date Weight sd n se
1 c39 d16 3.18 0.9566144 10 0.30250803
2 c39 d20 2.80 0.2788867 10 0.08819171
3 c39 d21 2.74 0.9834181 10 0.31098410
4 c52 d16 2.26 0.4452215 10 0.14079141
5 c52 d20 3.11 0.7908505 10 0.25008887
6 c52 d21 1.47 0.2110819 10 0.06674995
条形图的x轴通常是一个分类变量,y轴是连续变量,经常还会提供另一个分类变量,进行分组比较,这里用Cultivar,放在fill属性中(实际上还可以用其它显示样式,但填充色最容易区分不同的可视化对象),用dodge选项使它们互相躲避。
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) + geom_bar(stat="identity", position="dodge")

如果没有用position=”dodge”选项,则是堆叠条形图。
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) + geom_bar(stat="identity")

还可以用其它的调色板进行填充:
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(stat="identity", position="dodge", color="black") +
scale_fill_brewer(palette="Pastel1")

3.3. Making a Bar Graph of Counts
head(diamonds)
carat cut color clarity depth table price x y z
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
如果只是想按某个分类变量统计出现的个数,则:
ggplot(diamonds, aes(x=cut)) + geom_bar()
它实际上等价于下面的命令:
ggplot(diamonds, aes(x=cut)) + geom_bar(stat="bin")

上面的例子的x轴用的是分类变量,如果用连续变量,则会得到直方图。
ggplot(diamonds, aes(x=price)) + geom_bar(stat="bin")
这时最好用geom_histogram():
ggplot(diamonds, aes(x=price)) + geom_histogram()

3.4. Using Colors in a Bar Graph
把计步数据用指定的颜色填充。这里只有11个月,所以造了11种颜色。
ggplot(meanMonthStep, aes(x=month, y=step, fill=month)) +
geom_bar(stat="identity", color="black") +
scale_fill_manual(values=c("#111111", "#222222", "#333333", "#444444", "#555555", "#666666",
"#777777", "#888888", "#999999", "#AAAAAA", "#BBBBBB"))

如果想移除右侧的图例,用guide=FALSE
ggplot(meanMonthStep, aes(x=month, y=step, fill=month)) +
geom_bar(stat="identity", color="black") +
scale_fill_manual(values=c("#111111", "#222222", "#333333", "#444444", "#555555", "#666666",
"#777777", "#888888", "#999999", "#AAAAAA", "#BBBBBB"), guide=FALSE)
加文本标签
ggplot(meanMonthStep, aes(x=month, y=step)) +
geom_bar(stat="identity", fill="lightblue", color="black") +
geom_text(aes(label=floor(step)), vjust=-0.2)

R Graphics Cookbook 第3章 – Bar Graphs的更多相关文章
- 图表|Line graphs|Bar graphs|Pie graphs|Scatter graphs|标目|标值|图解|图题|标值|
科研论文写作-图表 图像的特点是直观性高效,可用于描述非线性关系,将文字难以描述的内容表达出来. Line graphs中有自变量和因变量,用于表示变化趋势.为了清晰简洁和易于辨认,所以其中的线条最好 ...
- R自动数据收集第二章HTML笔记1(主要关于handler处理器函数和帮助文档所有示例)
本文知识点: 1潜在畸形页面使用htmlTreeParse函数 2startElement的用法 3闭包 4handler函数的命令和函数体主要写法 5节点的丢弃,取出,取出标签名称.属性.属 ...
- R入门<三>-R语言实战第4章基本数据管理摘要
入门书籍:R语言实战 进度:1-4章 摘要: 1)实用的包 forecast:用于做时间序列预测的,有auto.arima函数 RODBC:可以用来读取excel文件.但据说R对csv格式适应更加良好 ...
- iOS编程Cookbook第19章最后一个例子不能正常工作的解决办法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Cookbook的第19章的11节中所要解决的是在App中显 ...
- R自动数据收集第二章HTML笔记2(主要关于htmlTreeParse函数)
包含以下几个小的知识点 1htmlTreeParse函数源码和一些参数 2hander的写法 3关于missing函数 4关于if-else语句中else语句的花括号问题 5关于checkHandle ...
- R自动数据收集第一章概述——《List of World Heritage in Danger》
导包 library(stringr) library(XML) library(maps) heritage_parsed <- htmlParse("http://en ...
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之六
十一.处理线程组中的未控制异常 每种编程语言一个很重要的特性就是其所提供的用来处理程序中错误情况的机制.Java语言和其他的现代语言一样,是提供了异常机制来处理对象程序中的错误.Java提供了很多的类 ...
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之一
一.简介 在计算机的世界里,当我们谈论并发时,我们指的是一系列的任务同时运行于一个计算机中.这里说的同时运行,在计算机拥有多于一个处理器或者是一个多核处理器的时候才是真正的同时,在计算机只拥有单核处理 ...
- CSS For Bar Graphs(maybe old)
Having a working knowledge of XHTML and CSS when developing applications is a big help in knowing wh ...
随机推荐
- 二十七(序幕)、【开源】EFW框架破茧成蝶
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- MyBatis知多少(26)调试
这是很容易,同时与iBATIS的工作程序进行调试. iBATIS有内置的日志支持,并适用于下列日志库,并在这个顺序搜索他们. Jakarta Commons日志记录(JCL). Log4J JDK 日 ...
- codeforce No to Palindromes!(枚举)
/* 题意:给定一个字符串中没有任何长度>1的回文子串!求按照字典序的该串的下一个字符串 也不包含长度>1的任何回文子串! 思路:从最低位进行枚举,保证第i位 不与 第 i-1位和第 i- ...
- php -- strstr()字符串匹配函数(备忘)
Learn From: http://blog.csdn.net/morley_wang/article/details/7859922 strstr(string,search) strstr() ...
- ServiceStack.Redis 中关系操作的局限与bug
redis是文档型的,nosql中难处理的是关系. 比如人可以发博客,博客可以有分类.按照传统sql中,用户表和分类表都是主表,博客表是从表,有用户的外键和分类的外键 如果使用文档型的思考方式. 为用 ...
- [git]git add 增加文件,文件名乱码
使用git add添加要提交的文件的时候,如果文件名是中文,会显示形如 274\232\350\256\256\346\200\273\347\273\223.png 的乱码. 解决方案: 在bash ...
- Mysql查找所有项目开始时间比之前项目结束时间小的项目ID
这是之前遇到过的一道sql面试题,供参考学习: 查找所有项目开始时间比之前项目结束时间小的项目ID mysql> select * from t2; +----+---------------- ...
- Spring基础——在 IOC 容器中 Bean 之间的关系
一.在 Spring IOC 容器中 Bean 之间存在继承和依赖关系. 需要注意的是,这个继承和依赖指的是 bean 的配置之间的关系,而不是指实际意义上类与类之间的继承与依赖,它们不是一个概念. ...
- timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1. CURRENT_TIMESTAMP 当要 ...
- Codeforces Round #313 (Div. 1) A. Gerald's Hexagon
Gerald's Hexagon Problem's Link: http://codeforces.com/contest/559/problem/A Mean: 按顺时针顺序给出一个六边形的各边长 ...