【问题标题】:How to make line graph in plot_ly that has multiple Y axis?如何在具有多个 Y 轴的 plot_ly 中制作折线图?
【发布时间】:2021-03-14 14:47:21
【问题描述】:

以下是我在 plotly 中想要的输出(我在 ggplot2 中得到了这个)。

当我尝试使用 ploty 时,我收到了以下输出。

以下是我使用的脚本。

    data1 <-  data  %>%
  mutate(Date = dmy(Date))

chart <-  plot_ly(data = data1,
                 x = ~ Date)

chart <- chart %>%  add_trace(y= ~Name1,name = "Name1", type = "scatter", mode = 'markers+lines')
chart <- chart %>%  add_trace(y= ~Name2, name = "Name2", mode = 'markers+lines', type = "scatter")
chart <- chart %>%  add_trace(y= ~weight, name = "weight", mode = 'markers+lines', type = "scatter")

chart

请帮我解决这个问题

【问题讨论】:

    标签: r r-plotly


    【解决方案1】:

    plotly 开始逐行绘制图形。因此,第一行的日期和值将通过一条线连接到第二行,依此类推。当您的数据集未按 x 变量 (date) 排列时,plotly 仍将逐行连接,并且不会关心日期是否排序。

    所以尝试按Date 排列数据集。 - 请查看您上面的代码,您的数据集不可重现。因此,很难判断这是否是您问题的解决方案。

    无序代码示例

    data1 <- data.frame(Date = ymd(20210101:20210105),
                     Name1 = sample(50:200,5),
                     Name2 = sample(50:200, 5),
                     weight = sample(50:200, 5)) %>%
      mutate(Date = sample(Date))
    
    head(data1)
    Date Name1 Name2 weight
    1 2021-01-05    88   139    153
    2 2021-01-02   136   162    109
    3 2021-01-01    66   104    179
    4 2021-01-03   145   147     70
    5 2021-01-04   189   181    136
    
    chart <-  plot_ly(data = data1,
                      x = ~ Date)
    chart <- chart %>%  add_trace(y= ~Name1,name = "Name1", type = "scatter", mode = 'markers+lines')
    chart <- chart %>%  add_trace(y= ~Name2, name = "Name2", mode = 'markers+lines', type = "scatter")
    chart <- chart %>%  add_trace(y= ~weight, name = "weight", mode = 'markers+lines', type = "scatter")
    
    chart
    
    

    示例图无序

    订购的示例数据

    data_arrange <- data1 %>% 
      arrange(Date)
    
    head(data_arrange)
    Date Name1 Name2 weight
    1 2021-01-01    66   104    179
    2 2021-01-02   136   162    109
    3 2021-01-03   145   147     70
    4 2021-01-04   189   181    136
    5 2021-01-05    88   139    153
    
    chart <-  plot_ly(data = data_arrange,
                      x = ~ Date)
    chart <- chart %>%  add_trace(y= ~Name1,name = "Name1", type = "scatter", mode = 'markers+lines')
    chart <- chart %>%  add_trace(y= ~Name2, name = "Name2", mode = 'markers+lines', type = "scatter")
    chart <- chart %>%  add_trace(y= ~weight, name = "weight", mode = 'markers+lines', type = "scatter")
    chart
    

    订购的示例图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多