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
订购的示例图