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
相关产品推荐
相关产品推荐

