ggbreak移动轴标记

vhmi4jdf  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(113)

当ggbreak与ggplot2一起使用时,轴标签会移动。在不插入断点的情况下绘制图形时,x轴标签以轴为中心,y轴标签靠近y轴。在引入中断之后,X轴标签向右移动,使得其定位在包括图例的整个图的中间。y轴标签从轴上移开。两者似乎都是由于在整个图形周围引入了一个框架,可以使其不可见,但其效果仍然存在。
参见以下MWE

library(ggplot2)
library(ggbreak)

theme_set(theme_light())

plot <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) +
  geom_point()
plot #without using ggbreak

plot_withbreak <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+
  geom_point()+
  scale_y_break(c(3.5, 3.7))
plot_withbreak #with ggbreak

plot_withbreak + theme_update(
  panel.border = element_blank()
) #removes additional frame, but problem persists.
jw5wzhpr

jw5wzhpr1#

我们可以手工组织:

library(ggplot2)
library(ggbreak)

theme_set(theme_light())

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) +
  geom_point()

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+
  geom_point()+
  scale_y_break(c(3.5, 3.7)) +
  theme(plot.margin = margin(5.5, 5.5, 5.5, 5.5, "mm"),legend.position = "top")

bn31dyow

bn31dyow2#

这不是一个真实的解决ggbreak问题的方法。但是要达到你想要的结果,一个变通方法是使用vanilla ggplot2facet_grid

library(ggplot2)

p <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species))+
  geom_point()+
  theme_light()

p +
  facet_grid(Sepal.Width < 3.7~., scales = "free_y", space = "free_y") +
  theme(strip.text.y = element_blank())

相关问题