2018-10-17
阅读量:
1396
给图形添加辅助线?ggplot2来解决
横轴为分类变量、纵轴为连续变量的数据图表:
dat <- read.table(header=TRUE, text='
cond result
control 10
treatment 11.5
')
library(ggplot2)
绘制横跨整坐标系的直线:
因为y轴是连续的,所以在这里使用geom_hline, 在x轴是连续的情况下也可以使用geom_vline) 。
# 基本的条形图
bp <- ggplot(dat, aes(x=cond, y=result)) +
geom_bar(position=position_dodge(), stat="identity")
bp
# line 加入一个水平线
bp + geom_hline(aes(yintercept=12))
# 让线变成红色的虚线
bp + geom_hline(aes(yintercept=12), colour="#990000", linetype="dashed")
为不同分类变量绘制独立的辅助线:
为了给每个条形图绘制不同的辅助线,我们需要用到geom_errorbar命令。我们的辅助线实际上是一个没有高度的误差带,我们需要指定一系列y值来使它成为一条辅助线
dat$hline <- c(9,12)
dat
#> cond result hline
#> 1 control 10.0 9
#> 2 treatment 11.5 12
# 需要重新设置bp,因为数据已经发生改变
bp <- ggplot(dat, aes(x=cond, y=result)) +
geom_bar(position=position_dodge(), stat="identity")
# 为每个条形图绘制单独的线
bp + geom_errorbar(aes(y=hline, ymax=hline, ymin=hline), colour="#AA0000")
# 让线短一点
bp + geom_errorbar(width=0.5, aes(y=hline, ymax=hline, ymin=hline), colour="#AA0000")
# 即使我们从另一个数据框中获得hline的值,依然可以获得相同的结果
# 用hline重新定义数据框
dat_hlines <- data.frame(cond=c("control","treatment"), hline=c(9,12))
dat_hlines
#> cond hline
#> 1 control 9
#> 2 treatment 12
# 根据dat绘制条形图,根据dat_hlines绘制线
bp + geom_errorbar(data=dat_hlines, aes(y=hline, ymax=hline, ymin=hline),
dat$hline <- c(9,12)
dat
#> cond result hline
#> 1 control 10.0 9
#> 2 treatment 11.5 12
# 需要重新设置bp,因为数据已经发生改变
bp <- ggplot(dat, aes(x=cond, y=result)) +
geom_bar(position=position_dodge(), stat="identity")
# 为每个条形图绘制单独的线
bp + geom_errorbar(aes(y=hline, ymax=hline, ymin=hline), colour="#AA0000")
# 让线短一点
bp + geom_errorbar(width=0.5, aes(y=hline, ymax=hline, ymin=hline), colour="#AA0000")
# 即使我们从另一个数据框中获得hline的值,依然可以获得相同的结果
# 用hline重新定义数据框
dat_hlines <- data.frame(cond=c("control","treatment"), hline=c(9,12))
dat_hlines
#> cond hline
#> 1 control 9
#> 2 treatment 12
# 根据dat绘制条形图,根据dat_hlines绘制线
bp + geom_errorbar(data=dat_hlines, aes(y=hline, ymax=hline, ymin=hline), colour="#AA0000")
83.1116
2
1
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论