安装、加载包
#if (!require(ggplot)) (install.packages("ggplot2"))
#if (!require(gcookbook)) (install.packages("gcookbook"))
library(ggplot2)
library(gcookbook) #使用数据集
1、基本语法
geom_bar(data, aes=(x, y), stat= )
- 默认stat为'bin'(frequency)
- 如果需要改变y-axis,使用
stat='identity'
参数即可对y参数映射 - 需要注意x的类型是离散还是连续
1.1堆积条形图/分组条形图
- 当在aes映射中使用fill参数填充分类变量,默认出现堆积条形图
ggplot(diamonds, aes(x= , y= , fill= ) +
geom_bar(stat='identity')
- 使用
position='dodge'
选项则修改为分组条形图
ggplot(diamonds, aes(x= , y= , fill= ) +
geom_bar(stat='identity', position='dodge')
1.2频数条形图
- 如果想使用频数条形图,则只需要映射x参数即可
- 但对于x参数需要注意:
- x=discrete时,绘制条形图
- x=continuous时,绘制直方图
1.3百分比堆积条形图
- 需要先对每组条形对应的数据进行百分比转化
- 然后再通过填充按堆积条形图步骤操作即可
2、调色
2.1颜色填充
颜色的填充主要使用color和fill映射参数:
- color主要是用于给外部涂色
- fill主要是用于内部填充颜色
对于分类变量与连续变量,着色的效果会有所不同
2.2颜色指定
如果对于填充的颜色不满意,可以使用:
scale_fill_brewer()
函数
scale_fill_manual()
函数
scale_fill_brewer(..., guide=T)
scale_fill_manual(values=c(...), guide=T) #通过values来指定颜色
- 填充图例可以使用
guide=F
参数来删除(方法不唯一) - 并且需要映射时则要在
aes
参数内进行,重新设定则不需要
3、宽度调整
- 在
geom_bar
中使用width=#
来指定条形宽度(max=1) - 对于分组条形图则需要通过
position
参数,并且通过position_dodge(#)
选项来完成:
geom_bar(..., position=position_dodge(#)
4、标签与图例
4.1标签添加
添加标签使用geom_text()
函数:
geom_text(aes(x=, y=, label= ), vjust/hjust=#)
- x和y参数如果已经在前面图层进行映射,则需要指定label参数即可
- 并且通过vjust和hjust来调整标签的位置:
- (vertical)vjust:调整上下位置
- (horizontal)hjust:调整水平位置
-
手动调整标签位置会使得出现遮挡标签或标签溢出的情况,需要手动设定y轴的范围
- 通常的做法是让y轴加上一个参数,使坐标轴自动扩展
4.2图例
对于图例进行调整可以使用guides
函数:
guides(....)
更多细节可以参考??ggplot2::guides