了解ggplot2
Reference:ggplot2数据分析与图形艺术。
一个简单示例:
library(ggplot2)
data(package='ggplot2')
head(diamonds)
p <- ggplot(diamonds,aes(x=carat))
p+geom_histogram(binwidth = 0.1,aes(fill=cut),position = 'dodge')+xlim(0,3)+coord_flip()+facet_grid(.~cut)
模板:
p <- ggplot(data=<输入数据框>,mapping=aes(<维度>=<变量名>,<维度>=<变量名>,<...>))
p+geom_<图形类型>(<...>)+scale_<映射>_<类型>(<...>)+coord_<类型>(<...>)+labs(<...>)
其中 <…> 表示额外的选项。变量p包含做出的图形的所有数据与设定,变量名可以任意取。
为什么要使用ggplot2
- 图形美观,同时避免繁琐细节。
- 采用图层的设计方式,有利于结构化思维。
- 可在更抽象层面上控制图形,使创造性绘图更容易。
ggplot2的基本概念
- 数据Data和映射Mapping
将数据中的变量映射到图形属性,映射控制了二者之间的关系。
- 标度Scale
标度负责控制映射后图形属性的显示方式。具体形式上来看是图例和坐标刻度。
- 几何对象Geometric
如点、线、多边形等。 - geom_point()绘制散点图
- geom_smooth()拟合一条平滑曲线
- geom_boxplot()绘制箱线图
- geom_path()和geom_line()绘制数据之间的连线
对于一维连续变量: - geom_histogram()绘制直方图
- geom_density()绘制密度曲线
对于一维离散变量: - geom_bar()绘制条形图
一般用法:
geom_xxx(mapping,data,binwidth,...,postion)
- 统计变换Statistics
对原始数据进行某种计算,例如对二元散点图加上一条回归线。
- 坐标系统Coordinate
坐标系统控制坐标轴,坐标轴可以进行变换以满足不同需要。
- 图层Layer
数据、映射、几何对象、统计变换等构成一个图层。图层可以允许用户一步步的构建图形,方便单独对图层进行修改。
- 分面Facet
条件绘图,将数据按某种方式分组,然后分别绘图。分面就是控制分组绘图的方法和排列形式。
基本绘图
基本的散点图:调用ggplot函数,指定数据集,将变量映射到x、y轴,然后指定图形类型就可以用加号连接作图了。
p <- ggplot(diamonds,aes(carat,price))
p+geom_point()