微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决刻面自由比例“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 举报,一经查实,本站将立刻删除。