break就是截?cái)嗟囊馑?,一般主要是在?huà)圖的時(shí)候,Y軸上某些值過(guò)大,容易把其它規(guī)律給掩蓋掉,所以這時(shí)候就需要一個(gè)截?cái)嗖僮鳌?/p>
今天用下面一組簡(jiǎn)單的測(cè)試數(shù)據(jù)。

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))

然后,加入隔斷,主要通過(guò)函數(shù)scale_y_break來(lái)實(shí)現(xiàn)。
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來(lái)定義截?cái)嗟奈恢茫瑃icklabels來(lái)定義截?cái)嗪蟮腨軸坐標(biāo)刻度,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來(lái)進(jìn)行分面操作。

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))
也可以加入多個(gè)break,就是寫(xiě)多個(gè)scale_y_break函數(shù)。
