- 介绍ggplot2包
- 使用形状、颜色和尺寸来对多元数据进行可视化
- 用刻面图比较各组
- 自定义ggplot2图
19.1 R中的四种图形系统
- 基础
- grid
- lattice
- ggplot2(用的较多)
- gghub
需要的R包
- ggpolt2
- gridExtra(可以拼图)
- car
19.2 ggplot2介绍
library(ggplot2)ggplot(data=mtcars, aes(x=wt, y=mpg)) +geom_point() +labs(, x="Weight", y="Miles Per Gallon")
![94c299c48fa9e78c2f33b882eb405c88.png](https://img-blog.csdnimg.cn/img_convert/94c299c48fa9e78c2f33b882eb405c88.png)
ggplot()初始化图形并且指顶要用到的数据来源(mtcars)和变量(wt\mpg)。aes()函数的功能是指定每个变量扮演的角色(aes代表aesthetics,即如何用视觉形式呈现信息)。
- 变量wt的值映射到沿x轴的距离,变量mpg的值映射到沿y轴的距离。
- ggplot()函数设置图形但没有自己的视觉输出。使用一个或多个几何函数向图中添加了几何对象(简写为geom),包括点、线、条、箱线图和阴影区域。
- geom_point()函数在图形中画点,创建了一个散点图。labs()函数是可选的,可添加注释(包括轴标签和标题)。
library(ggplot2)ggplot(data=mtcars, aes(x=wt, y=mpg)) +geom_point(pch=17, color="blue", size=2) +geom_smooth(method="lm", color="red", linetype=2) +labs(, x="Weight", y="Miles Per Gallon")
![4e31f1d2525987144e633085ea8b3171.png](https://img-blog.csdnimg.cn/img_convert/4e31f1d2525987144e633085ea8b3171.png)
- 选用geom_point()函数来设置点的形状为三角形(pch=17),点的大小加倍(size=2),并使颜色为蓝色(color="blue")。
- geom_smooth()函数增加了一条“平滑”曲线。这里需要线性拟合(method="lm"),并且产生一条红色(color="red")虚线(linetype=2),线条尺寸为1(size=1)。
- 默认情况下,平滑的曲线包括在95%的置信区间(较暗带)内。
ggplot2包提供了分组和小面化的方法,分组是再一个图形中显示两组或多组观察结果,小面化是指再单独并排的图形上显示观察组。ggplot2再定义组和面时使用因子(factor)
示例:
我们可以使用mtcars数据集来查看分组和面。首先,将am、vs和cyl变量转化为因子:
rm(list=ls())mtcars$am labels=c("Automatic", "Manual"))mtcars$vs labels=c("V-Engine", "Straight Engine"))mtcars$cyl #绘图library(ggplot2)ggplot(data=mtcars, aes(x=hp, y=mpg,shape=cyl, color=cyl)) +geom_point(size=3)+facet_grid(am~vs)+labs(, x="Horsepower", y="Miles Per Gallon")
![a2f77a582285ba06f0814d389d5828a9.png](https://img-blog.csdnimg.cn/img_convert/a2f77a582285ba06f0814d389d5828a9.png)
包含变速箱类型(自动对手动)和发动机装置(V型发动机与直列式发动 机)每个组合的分离的散点图。每个点的颜色和形状表示该汽车发动机汽缸的数量。在本例中,am和vs是刻面变量,cyl是分组变量。
19.3 用几何函数指定图的类型
函数 | 添加 | 选项 |
---|---|---|
geom_bar() | 条形图 | color、fill、alpha |
geom_boxplot() | 箱线图 | color、fill、alpha、notch、width |
geom_density() | 密度图 | color、fill、alpha、linetype |
geom_histogram() | 直方图 | color、fill、alpha、linetype、binwidth |