如何将无穷大限制与转换比例一起使用?

时间:2019-02-21 15:31:53

标签: r ggplot2

当将变换应用于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

1 个答案:

答案 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

enter image description here