当将变换应用于y轴时,是否要在ggplot对象的y轴上将geom_rect应用于Infinity上,是否有解决方法?
下面的代码不会绘制间隔矩形,除非您注释掉scale_y_continuous线。使用转换后的比例尺时,我必须设置实际数据限制。我可能可以编写一个函数来查找要绘制的其他数据的最小值/最大值,以避免硬编码值,但是我正在寻找更接近Inf方法的方法。我尝试使用NA代替Inf,但没有运气。
library(tidyverse)
data(economics)
ints<-data.frame(start=as.Date(paste0(seq(1970,2020,by=10),"-01-01"))) %>%
mutate(end=start+1785)
plt<-ggplot(economics,aes(date,unemploy)) + theme_bw() +
scale_y_continuous(trans="sqrt") +
geom_rect(data=ints,inherit.aes=F,aes(xmin=start,xmax=end,ymin=-Inf,ymax=Inf)) + geom_line()
plt
答案 0 :(得分:1)
library(tidyverse)
data(economics)
ints<-data.frame(start=as.Date(paste0(seq(1970,2020,by=10),"-01-01"))) %>%
mutate(end=start+1785)
plt<-ggplot(economics,aes(date,unemploy)) + theme_bw() +
scale_y_continuous(trans="sqrt") +
geom_rect(data=ints,inherit.aes=F,aes(xmin=start,xmax=end,ymin=0,ymax=Inf)) + geom_line()+
coord_cartesian(ylim=c(2000,20000)) # This will allow you to control how zoomed in you want the plot
plt