问题描述
我尝试覆盖 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))
我尝试使用第二个轴覆盖两个图形。我使用 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"))
**编辑:**
如果我不乘,我会得到这个:
ggplot(df,aes(y=var2,size=11))+
scale_y_continuous(
sec.axis = sec_axis(~ .,name="var2"))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)