如何创建以下图形样式:
注意x-y轴(红色圆圈)与x-y轴(箭头)上的突出刻度之间的差距。
我现在能做的就是这个:
library(ggplot2)
p <- ggplot(mpg, aes(class, hwy)) +
geom_boxplot() +
theme_bw(base_size=10)
p
答案 0 :(得分:6)
答案 1 :(得分:5)
一个选项是删除内置轴线,然后使用geom_segment
添加带间隙的轴。为了更容易将断开的轴线放在正确的位置,我们还使用scale_y_continuous
来准确指定轴断裂和限制的位置。该代码还显示了如何增加刻度线的大小。
ggplot(data=mpg, aes(class, hwy)) +
geom_segment(y=10, yend=50, x=0.4, xend=0.4, lwd=0.5, colour="grey30", lineend="square") +
geom_segment(y=5, yend=5, x=1, xend=length(unique(mpg$class)),
lwd=0.5, colour="grey30", lineend="square") +
geom_boxplot() +
scale_y_continuous(breaks=seq(10,50,10), limits=c(5,50), expand=c(0,0)) +
theme_classic(base_size=12) +
theme(axis.line = element_blank(),
axis.ticks.length = unit(7,"pt"))
答案 2 :(得分:2)
最初是作为对 related question 的回答发布的,我也被鼓励在这里分享我的回答。
ggh4x 包有一个 truncated axis guide,它通过利用 ggplot2 v3.3.0 中引入的位置指南定制解决了这个问题。因为它直接使用引导系统而不是通过几何体工作,所以它像常规轴一样响应主题设置。 (免责声明:我是 ggh4x 的作者)。
默认情况下,它会将轴截断到最外面的中断处,但这可以调整。
library(ggplot2)
library(ggh4x)
ggplot(mpg, aes(class, hwy)) +
geom_boxplot() +
guides(x = "axis_truncated", y = "axis_truncated") +
theme(axis.line = element_line(colour = "black"))
由 reprex package (v1.0.0) 于 2021 年 4 月 19 日创建
答案 3 :(得分:-1)
线条顶部和底部的条形图添加了
geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
或将geom添加到另一个图层。
stat_summary(fun.data = mean_sdl,
fun.args = list(mult = 1),
geom = "errorbar",
width = 0.1)