R语言统计分析——ggplot2绘图2——几何函数
参考资料:R语言实战【第2版】
ggplot()函数指定要绘制的数据源和变量,几何函数则指定这些变量如何在视觉上进行表示(使用点、线、条和阴影区)。目前有37个函数可供使用,下面为常用的几个几何函数:
函数 | 添加 | 选项 |
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 |
geom_hline() | 水平线 | color、alpha、linetype、size |
geom_jitter() | 抖动点 | color、size、alpha、shape |
geom_line() | 线图 | color、alpha、linetype、size |
geom_point() | 散点图 | color、alpha、shape、size |
geom_rug() | 地毯图 | color、sides |
geom_smooth() | 拟合曲线 | method、formula、color、fill、 linetype、size |
geom_text() | 文字注释 | 很多,见函数的帮助 |
geom_violin() | 小提琴图 | color、fill、alpah、linetype |
geom_vline() | 垂直线 | color、alpha、linetype、size |
演示示例如下:
# 加载数据集
data(singer,package="lattice")
# 创建直方图
ggplot(singer,aes(x=height))+geom_histogram()
# 创建箱线图
ggplot(singer,aes(x=voice.part,y=height))+geom_boxplot()
需要注意的是,创建直方图时只有变量x是指定的,但创建箱线图时变量x和y都需要指定。geom_histgrom()函数在y变量没有指定时默认对y轴变量计数。
每个的几何函数具有一组可以用来修改它的表示的选项。常见的选项如下:
选项 | 描述 |
color | 对点、线、填充区域的边界进行着色 |
fill | 对填充区域着色,如条形图和密度区域 |
alpha | 颜色的透明度,从0(完全透明)到1(不透明) |
size | 点的尺寸和线的宽度 |
shape | 点的形状(和pch参数一样) |
position | 绘制诸如条形图和点等对象的位置。对条形图来说, "dodge"将分组条形图并排, "stacked"堆叠分组条形图, "fill"垂直地堆叠分组条形图并规范其高度相等。对于点来说, "jitter"减少点重叠 |
binwidth | 直方图的宽度 |
notch | 表示方块图是否应为缺口(TRUE/FALSE) |
sides | 地毯图的安置( "b"=底部, "l"=左部, "t"=顶部, "r"=右部, "bl"=左下部) |
width | 箱线图的宽度 |
示例如下:
# 加载ggplot2包
library(ggplot2)
# 加载数据集
data(Salaries,package="car")
# 绘制箱线图
ggplot(Salaries,aes(x=rank,y=salary))+
geom_boxplot(fill="cornflowerblue",
color="black",
notch=TRUE)+
geom_point(position="jitter",
color="blue",
alpha=0.5)+
geom_rug(sides="l",color="black")
该图显示了不同学术地位对应薪水的缺口箱线图。实际的观察值(教师)是重叠的,因而给予一定的透明度以避免遮挡箱线图。它们还抖动以减少重叠。最后,一个地毯图设置在左侧以指示薪水的一般扩散。
当几何函数组合形成新的图时,ggplot2包的真正力量就会得到展示:
# 加载ggplot2包
library(ggplot2)
# 加载数据集
data(singer,package="lattice")
#将小提琴图和箱线图合并展示
ggplot(singer,aes(x=voice.part,y=height))+
geom_violin(fill="lightblue")+
geom_boxplot(fill="lightgreen",width=0.2)
把箱线图和小提琴图结合在一起形成一个新的图形(展示在图19-7中)。箱线图展示了在singer数据框中每个音部的25%、 50%和75%分位数得分和任意的异常值。对于每个声部身高范围上的得分分布,小提琴图展示了更多视觉线索。