R plotly中分组数据上的错误无法正常工作

R plotly中分组数据上的错误无法正常工作,r,plotly,R,Plotly,我想在plotly中创建一个包含分组数据的绘图。它不能正常工作,因为它只生成一行。这好像是一只虫子 df <- data.frame( id = rep(1:1000, 3), value = c(rnorm(1000,mean = 2), rnorm(1000,mean = 4), rnorm(1000,mean = 6)), var = rep(LET

我想在plotly中创建一个包含分组数据的绘图。它不能正常工作,因为它只生成一行。这好像是一只虫子

df <- data.frame(
         id  = rep(1:1000, 3),
         value = c(rnorm(1000,mean = 2), 
                   rnorm(1000,mean = 4), 
                   rnorm(1000,mean = 6)),
         var = rep(LETTERS[1:3], each = 1000))

# ggplot2 - it works as it should be
ggplot(df, aes(id, value, color  = var)) +
  geom_smooth(method = "loess")

# plotly - it doesn't work properly
df %>%
  plot_ly(x = ~id) %>%
  add_markers( y = ~value, color = ~var) %>%
  add_lines(y = ~fitted(loess(value ~ id)), color = ~var)

df这是预期的行为,因为在
add_行
调用中您没有按组进行调整

以下是一种方法,首先按组计算拟合,然后绘制曲线

library(tidyverse)
library(plotly)

df %>% 
  group_by(var) %>%
  mutate(fit = fitted(loess(value ~ id))) %>%
  plot_ly(x = ~id) %>%
  add_markers( y = ~value, color = ~var, alpha = 0.5) %>%
  add_lines(y = ~fit, color = ~var)

为什么要为此加载
tidyverse
?没有它我也能用。@Frans Rodenburg我每次启动R都会加载
tidyverse
,这已经成为我的习惯。在本例中,我使用了
%%
分组依据
变异
,它们是
dplyr
的一部分,
dplyr
tidyverse
的一部分。