【发布时间】:2020-07-10 17:31:17
【问题描述】:
我想从geom_boxplot (ggplot) 中删除每个第 n 个 x 轴刻度标签。
以这个虚拟数据框为例:
Lat <- c(rep(50.70,3), rep(51.82,3), rep(52.78,3), rep(56.51,3))
y <- c(seq(1,2, by=0.5), seq(1,3, by=1), seq(2,6,by=2), seq(1,5,by=2))
df <- as.data.frame(cbind(Lat, y))
我可以像这样制作ggplot 箱线图:
box_plot <- ggplot(df, aes(x=as.factor(Lat), y=y))+
geom_boxplot()+
labs(x="Latitude")+
scale_y_continuous(breaks = pretty_breaks(n=6)) +
theme_classic()
box_plot
但是我想从中间两个盒子中删除标签。
我知道我可以通过将标签更改为空白来实现这一点(如下所示)。 但是,我的真实数据框有超过 4 个滴答声,所以这会很耗时,更不用说人为错误!
box_plot2 <- ggplot(df, aes(x=as.factor(Lat), y=y))+
geom_boxplot()+
labs(x="Latitude")+
scale_y_continuous(breaks = pretty_breaks(n=6)) +
scale_x_discrete(labels=c("50.70", " ", " ", "56.51"))+
theme_classic()
box_plot2
有没有一种无需手动设置标签即可生成上述图的方法?
例如,在 x 轴上每隔 n 个刻度标记一次?
提前致谢!
【问题讨论】: