You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ggmagnify指定from值过近坐标轴边缘时无法生成放大图问题问询

关于ggmagnify放大图靠近坐标轴最小值时消失的问题

我在R中使用ggplot2和ggmagnify绘图时发现,当ggmagnify的from参数设置得过于接近坐标轴最小值时,放大图会直接消失。不确定这个问题是不是只在使用scale_x_continuous/scale_y_continuous时出现,还是只要放大框太靠近绘图边缘就会触发,而且x、y两个坐标轴都存在这个问题。另外我还发现,坐标轴数值范围越小的图,放大图消失前能设置的最小from值也越小——比如坐标轴范围0-20的图可以设到0.05,但0-26的图只能设到0.22。想请教这是ggmagnify的bug,还是我在ggplot2或ggmagnify里漏了什么可以避免这个问题的设置?

环境版本

  • R: 4.3.1
  • ggplot2: 3.4.3
  • ggmagnify: 0.2.0.9

复现代码

library(ggplot2)
library(ggmagnify)
library(cowplot)
set.seed(1)
x <- seq(0,10,1)
y <- sample(x,11)
plist <- vector(mode = "list", length = 4)

# 设置from = c(0.25, 5, 0.25, 5)时放大图正常显示
plist[[1]] <- ggplot(data=data.frame(x,y)) +
  geom_jitter(aes(x=x,y=y), height = 0) +
  scale_x_continuous(expand = c(0, 0), limits = c(0, 10)) +
  scale_y_continuous(expand = c(0, 0), limits = c(0, 10)) +
  coord_cartesian(clip="off") +
  geom_magnify(from=c(0.25, 5, 0.25, 5),to=c(11, 21, 0.45, 9.5), axes = "xy")

# 设置from = c(0.20, 5, 0.20, 5)时放大图消失
plist[[2]] <- ggplot(data=data.frame(x,y)) +
  geom_jitter(aes(x=x,y=y), height = 0) +
  scale_x_continuous(expand = c(0, 0), limits = c(0, 10)) +
  scale_y_continuous(expand = c(0, 0), limits = c(0, 10)) +
  coord_cartesian(clip="off") +
  geom_magnify(from=c(0.20, 5, 0.20, 5),to=c(11, 21, 0.45, 9.5), axes = "xy")

plot_grid(plotlist = plist, align = "hv", byrow = FALSE)

内容的提问来源于stack exchange,提问作者ia200

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:22:31