r-break-3

ggplotで作った下記グラフ、一番高いバーのせいで、低いバーが見えにくくなっている。

r-break-1

なので、途中で棒をぶった切って、中間部を省略し、さらに上の方は間隔を狭めたい。

……と思った時の備忘録。

軸を切断して途中を省略し、軸幅の割合を変える

使う関数は、scale_y_break()

軸を切断して途中を省略する

試しに、15から19までを切断して省略してみる。

scale_y_break(c(15,19))    
r-break-2 

切断はできたけど、間延び感は変わっていない。

これを解消するため、上の方の間隔を狭くする。

上の部分のY軸間隔を狭める

先ほどのscale_y_break()で、下の部分に対する上の部分の軸間隔の割合を指定してあげるとよい。

例えば、上の部分の軸間隔は、下の半分にしたい場合、

scale_y_break(c(15,19), scale = 0.5)
r-break-3

いい感じに低いバーが見やすくなった。

 



 

全体のコードは下記

ggplot(Data2,
aes(x = Age,
y = `positive area [%]`,
fill = Genotype)) +
stat_summary(
fun = "mean",
geom = "bar",
position = "dodge",
colour = "black") +
scale_fill_manual(values = c("#CCCCCC","#444444")
) +
facet_wrap(~Region) +
stat_summary(
fun = "mean",
fun.min = function(x)mean(x) - sd(x)/sqrt(4),
fun.max = function(x)mean(x) + sd(x)/sqrt(4),
geom = "errorbar", position = position_dodge(.9),
width = .5, size = .1,
colour = "black",
) +
geom_point(
position = position_jitterdodge(
jitter.width = .45, 
jitter.height = 0 
),
size = 2.5, 
colour = "black",
aes(shape = Genotype)
) +
scale_shape_manual(
values = c(21, 17)
) +
theme_classic() +
theme(legend.title = element_blank(),
axis.title.x = element_text(size = 20, hjust = .45),
axis.title.y = element_text(size = 20),
axis.text.x = element_text(size = 15),
axis.text.y = element_text(size = 15),
strip.text.x = element_text(size = 15)
) +
scale_y_break(c(15,19), scale = 0.5)

x軸も

x軸もscale_x_break()を使って、同じように切断できる。