Anchoret

Choose You Own Path


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 站点地图

  • 公益404

  • 搜索

绘制条形图

发表于 2017-09-27 | 分类于 R , R-Cookbook , |

条形图通常用来展示不同的分类下某个数值变量的取值。

绘制条形图需要特别注意一个重要细节:有时条形图的条形高度表示的是数据集中变量的频数,有时则表示变量取值本身。牢记这个区别,因为它太容易让人混淆啦,两者与数据集的对应关系不同,但又对应同样的术语。

绘制简单条形图

使用ggplot()函数和geom_bar(stat="identity")绘制条形图(y轴对应的是变量取值本身)。

library(gcookbook) # 导入数据
library(ggplot2) # 导入画图包
ggplot(pg_mean, aes(x=group, y=weight)) + geom_bar(stat="identity")

plot of chunk unnamed-chunk-1

当x是连续变量时,ggplot不是只在实际取值处绘制条形,而将在x轴上介于最大值和最小值之间的所有可能的取值处绘制条形。如果碰到这种情况,我们需要先将其转换为因子变量。

默认情况条形图的填充色为黑灰色且条形图没有边框线,我们可以使用fill与colour参数来设置改变它们。

ggplot(pg_mean, aes(x=group, y=weight)) + geom_bar(stat="identity", fill="lightblue", colour="black")

plot of chunk unnamed-chunk-2

注意这里参数colour为英式的,我们也可以用美式拼法color,它们在底层指向相同的映射,所以效果一致。

绘制簇状条形图

将分类变量映射到fill参数,并运行命令geom_bar(position="dodge")。

下面以cabbage_exp数据集为例演示一下绘图过程。

library(gcookbook)
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

分布将Date与Cultivar映射给x和fill。

library(ggplot2)
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
    geom_bar(position="dodge", stat="identity")

plot of chunk unnamed-chunk-4

有时候我们想额外添加一个分类变量跟x轴上的分类变量一起对数据进行分组,此时,可通过将该分类变量映射给fill参数来绘制簇状条形图。

下面对上图作一些修改。

ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) + 
    geom_bar(position="dodge", stat="identity", color="black") + 
    scale_fill_brewer(palette = "Pastel1")

plot of chunk unnamed-chunk-5

我们通过将geom_bar()中的参数指定为color="black"为条形图添加黑色边框线;用scale_fill_brewer()或scale_fill_manual()函数对图形的颜色进行设置。上图我们使用了RColorBrewer包中的Pastel1调色板对图形进行调色。

绘制频数条形图

将数据集中的每行数据对应于一个样本,针对样本的频数绘制条形图。

ggplot(diamonds, aes(x=cut)) + geom_bar()

plot of chunk unnamed-chunk-6

# 等价于使用geom_bar(stat="bin")

diamonds数据集共有50,000+行数据,每行数据对应一颗钻石的品质信息。

head(diamonds)
## # A tibble: 6 x 10
##   carat       cut color clarity depth table price     x     y     z
##   <dbl>     <ord> <ord>   <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 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
阅读全文 »

Manipulating Data - 重命名因子水平

发表于 2017-09-23 | 分类于 R , R-Cookbook , |

问题

你想要重命名因子水平。

阅读全文 »

快速探索数据

发表于 2017-09-21 | 分类于 R , R-Cookbook , |

绘制散点图

方法

直接调用plot()函数,运行命令时传入向量x和向量y。

plot(mtcars$wt, mtcars$mpg)

plot of chunk unnamed-chunk-1

对于ggplot2系统,可以用qplot()函数得到相同的绘图结果:

library(ggplot2)
qplot(mtcars$wt, mtcars$mpg)

plot of chunk unnamed-chunk-2

如果两个参数向量包含在一个数据框内,使用下面命令:

qplot(wt, mpg, data=mtcars)

plot of chunk unnamed-chunk-3

# 这与下面等价
# ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()
阅读全文 »

R-面向对象编程

发表于 2017-09-20 | 分类于 R |

一些概念

这里首先要提及一些概念,然后我们再看具体的实例加以理解。

每一个单独的对象都可以被称为对应类的一个实例(instance)。操作指定类的函数称为方法(method)。

把程序接口从具体的实现细节中分离开来的过程称为封装。

在OOP(面向对象编程)中,我们可以通过一个类创建出另外一个类,只需要指定新类的不同信息即可,这种方法称为继承。由此衍生出,被继承的类称为父类或超类(superclass),新创建的类称为子类(subclass)。

在OOP中,允许同一个方法名操纵不同对象并得到不同的结果,称为多态(polymorphism)。

通过一系列的其他类来创建新类的过程称为组合(composition)。在一些语言中,一个类可以从多个类中继承方法,称为多重继承(multiple inheritance)。

阅读全文 »

R的函数

发表于 2017-09-19 | 分类于 R |

我们可以在参数列表中加上一个省略号(…)来方便地指定任意长度的参数。

阅读全文 »

R中的属性与类

发表于 2017-09-15 | 分类于 R |

属性

属性描述了对象所代表的内容以及R解释该对象的方式。很多时候两个对象之间的唯一差别就在于它们的属性不同。下表展示了一些重要的属性。很多常见的属性都是针对常见的数值型数据对象而言的:像数组、矩阵和数据框。

阅读全文 »

Graphs-绘制均值的误差棒 (ggplot2)

发表于 2017-09-15 | 分类于 R , R-Cookbook , |

问题

你想要为一个数据集绘制均值的误差棒。

阅读全文 »

ggplot2误差棒快速指南

发表于 2017-09-14 | 分类于 R |
阅读全文 »

R获取帮助

发表于 2017-09-11 | 分类于 R |
  • 如果要获取关于某个函数的帮助信息,例如glm,输入:
  > help(glm)

或者

> ?glm

阅读全文 »

Numbers-比较浮点数

发表于 2017-09-07 | 分类于 R , R-Cookbook , |

问题

比较浮点数通常未能如你所想。

阅读全文 »
1 2 3 … 6
诗翔

诗翔

逢君一笑,人间无此欢喜

51 日志
7 分类
RSS
GitHub 简书
Creative Commons
推荐阅读
  • 阮一峰的网络日志
  • R的极客理想系列
  • 谢益辉
  • 解螺旋的矿工
  • GuangchuangYu
  • 生信技能树
© 2017 - 2019 诗翔
由 Jekyll 强力驱动
主题 - NexT.Mist
本站访问数 人次 本站总访问量 次