刻面自由比例“y”不适用于双轴

问题描述

我尝试覆盖 2 个图形,我在 facet 中使用了自由 Y 比例来正确显示数据:

set.seed(123)

df <-data.frame(
    var1 = 15000 + c(0,cumsum(runif(49,-10,10))),var2 = rnorm(100,10,1),cate= factor(LETTERS[1:4]),date = seq(as.Date("2002-01-01"),by="1 month",length.out=100))

df$var1[df$cate=="A"]=rnorm(25,1)

 ggplot(df,aes(x=date))+ 
 geom_line(data=df,aes(y=var1,color="red"),size=1)+
 theme(legend.position="")+ 
 facet_wrap(facets = ~cate,scale="free_y") +
 theme(
         axis.text.x = element_text(
         angle = 45,face = "bold",hjust = 0.85,color="black",size=11))

 ggplot(df,aes(y=var2),size=1,color="blue")+
 theme(legend.position="")+ 
 facet_wrap(facets = ~cate,size=11))

How overlay?

我尝试使用第二个轴覆盖两个图形。我使用 facet 使用了一个免费的 Y 比例尺。遗憾的是,我的第一个轴(左侧)无法正确显示数据或变化,因为这个问题(左侧的限制不好)。

我对第二个轴进行了一些调整(相乘)以获得正确的比例。为此,我从 var1 和 var2 中获得了最大值,根据:

https://whatalnk.github.io/r-tips/ggplot2-secondary-y-axis.nb.html

summary(df)

      var1                var2        cate        date           
 Min.   :    7.642   Min.   : 6.962   A:25   Min.   :2002-01-01  
 1st Qu.:11227.279   1st Qu.: 9.170   B:25   1st Qu.:2004-01-24  
 Median :14994.614   Median : 9.965   C:25   Median :2006-02-15  
 Mean   :11254.102   Mean   : 9.888   D:25   Mean   :2006-02-14  
 3rd Qu.:15008.424   3rd Qu.:10.579          3rd Qu.:2008-03-08  
 Max.   :15035.587   Max.   :12.367          Max.   :2010-04-01  
> 


 ggplot(df,color="blue"),size=1)+
 geom_line(data=df,aes(y=var2*15035/12.367,size=1) +
 theme(legend.position="")+ 
 facet_wrap(facets = ~cate,size=11))+
 scale_y_continuous(
    sec.axis = sec_axis(~ .*12.367/15035,name="var2"))

example

**编辑:**

如果我不乘,我会得到这个:

 ggplot(df,aes(y=var2,size=11))+
 scale_y_continuous(
    sec.axis = sec_axis(~ .,name="var2"))

Not multiply

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)