首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggforce :强制facet_zoom设置在图形的侧面

ggforce :强制facet_zoom设置在图形的侧面
EN

Stack Overflow用户
提问于 2022-11-04 17:55:26
回答 2查看 51关注 0票数 1

有没有一种方法可以迫使facet_zoom()函数从图形的侧面而不是底部的包ggforce中缩放?

我有这个密码

代码语言:javascript
复制
require(dplyr)
require(tidyverse)
require(ggforce)

g + facet_zoom(xlim = c(x1,x2)))

我该怎么做?

编辑

通过Stefan提供的非常好的答案,我可以添加一张代表我想要的东西的图片(我肯定对其他方法开放)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-04 18:48:36

这是可能的,但它需要一点黑客。就我从文档中获得的信息而言,这只能在xy方向上放大时才能实现。为此,您可以将y方向的缩放设置为y=TRUE,然后设置split=FALSEhorizontal = TRUE。这样做会将缩放面板放置在主图的左边。此外,我们还必须通过y选项zoom.y消除缩放方向的背景填充。

使用以前的post中的示例数据和代码

注意:使用theme_bw的一个副作用是,我们在面板边框上得到了一些段,它们连接主面板和缩放面板。就我个人而言,我不喜欢这样,所以我将color=NA添加到theme(zoom.y = element_rect(fill = NA, color = NA))中以删除这些行。

代码语言:javascript
复制
DebitH %>%
  ggplot(aes(x = Date, y = Débit_horaire)) +
  geom_point(alpha = 6 / 10, size = 0.3, color = "blue") +
  geom_line(alpha = 4 / 10, size = 0.5, color = "blue") +
  labs(x = "Date", y = "Débit Horaire (m3/s)") +
  theme_bw() +
  theme(
    panel.grid.major.y = element_line(
      color = "grey",
      size = 0.25,
      linetype = 2
    ),
    legend.position = "none"
  ) +
  facet_zoom(
    xlim = as.POSIXct(c("2021-01-15 00:00:00", "2021-02-15 00:00:00")),
    y = TRUE, zoom.size = .5,
    split = FALSE, horizontal = TRUE
  ) +
  theme(zoom.y = element_rect(fill = NA, color = NA))

票数 1
EN

Stack Overflow用户

发布于 2022-11-04 18:27:27

代码语言:javascript
复制
ggplot(iris, aes(Petal.Length, Petal.Width, colour = Species)) +
  geom_point() +
  facet_zoom(y = Species == 'versicolor')

是像这样吗?(在y轴上放大)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74321190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档