考虑一下这个相对简单的图(添加红色只是为了更好地演示这个问题)。
library(ggplot2)
library(ggforce)
ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
geom_point() +
facet_zoom(x = Species == "versicolor") +
theme(zoom = element_rect(fill = "red"))

现在,我想调整缩放部分(较低的部分)的ylim。
ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
geom_point() +
facet_zoom(
x = Species == "versicolor",
ylim = c(0.5, 2.5),
horizontal = FALSE
) +
theme(zoom = element_rect(fill = "red"))

所以我们添加ylim和horizontal = FALSE,因为我们只需要垂直缩放。然而,ggforce仍然添加了一个水平缩放指示器(红色水平条)。有可能摆脱它吗?所以我们只能得到像上面那样的垂直变焦指示器?
非常感谢。
发布于 2022-10-21 10:50:15
你误解了horizontal的工作。当我阅读文档时,horizontal习惯于缩放面板的位置(参见?facet_zoom):
缩放面板应该如何相对于完整的数据面板定位?
此外,使用x = Species == "versicolor",您可以指定要将x的范围缩放到versicolor数据。在添加ylim时,还可以添加y轴的缩放。这就是“变焦指示器”所显示的。
但解决办法是通过主题选项将不需要的“缩放指示器”的填充颜色设置为NA:
library(ggplot2)
library(ggforce)
ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
geom_point() +
facet_zoom(
x = Species == "versicolor",
ylim = c(0.5, 2.5),
horizontal = FALSE
) +
theme(zoom.x = element_rect(fill = "red"), zoom.y = element_rect(fill = NA))

https://stackoverflow.com/questions/74152264
复制相似问题