【R画图学习9.3】加入截断的柱状图

2022-10-28  本文已影响0人  jjjscuedu

break就是截断的意思,一般主要是在画图的时候,Y轴上某些值过大,容易把其它规律给掩盖掉,所以这时候就需要一个截断操作。

今天用下面一组简单的测试数据。

library(ggplot2)

library(ggbreak)

data <- read.table("week.data.txt",header=T,sep="\t")

head(data)

data$day =factor(data$day)

ggplot(data,aes(day,time,fill=week_n))+

geom_bar(stat="identity",show.legend=F)+

theme(axis.text.x=element_text(vjust=0.9,hjust=1,angle=45))

然后,加入隔断,主要通过函数scale_y_break来实现。

ggplot(data,aes(day,time,fill=week_n))+

geom_bar(stat="identity",show.legend=F)+

theme(axis.text.x=element_text(vjust=0.9,hjust=1,angle=45))+

scale_y_break(breaks=c(100,170),ticklabels=seq(180,240,20),scales=0.4)

其中breaks来定义截断的位置,ticklabels来定义截断后的Y轴坐标刻度,scales定义上下显示比例,大于1上面比例大,小于1下面比例大。0.4代表上面比例40%。

ggplot(data,aes(day,time,fill=week_n))+

geom_bar(stat="identity",show.legend=F)+

theme(axis.text.x=element_text(vjust=0.9,hjust=1,angle=45))+

scale_y_break(breaks=c(100,170),ticklabels=seq(180,240,20),scales=0.4)+

facet_wrap(week_n~.,scales="free_x")+

#theme_classic()+

theme(text = element_text(size = 15))

我们也可以利用facet_wrap来进行分面操作。

ggplot(data,aes(day,time,fill=week_n))+

geom_bar(stat="identity",show.legend=F)+

theme(axis.text.x=element_text(vjust=0.9,hjust=1,angle=45))+

scale_y_break(breaks=c(50,100),ticklabels=seq(100,120,5),scales=0.4)+

scale_y_break(breaks=c(120,170),ticklabels=seq(180,240,10),scales=0.4)+

facet_wrap(week_n~.,scales="free_x")+

theme_classic()+

theme(text = element_text(size = 15))

也可以加入多个break,就是写多个scale_y_break函数。

上一篇下一篇

猜你喜欢

热点阅读