我想有两个子图,相同的x轴。在顶部的图中,我想有两个y轴。如果我只显示top
,两个图都能正确显示。但是在both
中,df2的图丢失了。为什么?我该如何修复它?
library(plotly)
library(tidyverse)
df1 <- data.frame(t=seq(5)) %>% mutate(d1=t+7)
df2 <- data.frame(t=seq(2,6)) %>% mutate(d2=t*t+20)
df3 <- data.frame(t=seq(0,8)) %>% mutate(d3=-2-t)
top <- plot_ly() %>%
add_trace(x=~t,y=~d1,type="scatter",data=df1,mode="lines") %>%
add_trace(x=~t,y=~d2,type="scatter",data=df2,mode="lines",yaxis = "y2") %>%
layout(yaxis2 = list(overlaying = "y", side = "right"))
bottom <- plot_ly() %>%
add_trace(x=~t,y=~d3,type="scatter",data=df3,mode="lines")
both <- list(top ,bottom ) %>% subplot(nrows=2,shareX=T)
我试图理解Python中的一个类似问题,但我看不出它与我的代码有什么关系。
1条答案
按热度按时间yqlxgs2m1#
对于双轴绘图,您应该将
yaxis
的layout
更改为左侧,这是您的第一个轴,yaxis2更改为右侧,作为第二个y轴,并将“overlaying”参数更改为“y”。创建于2023年1月17日,使用reprex v2.0.2