I have a graph similar to the following:
library(plotly)
df <- as.data.frame(1:19)
df$CATEGORY <- c("C","C","A","A","A","B","B","A","B","B","A","C","B","B","A","B","C","B","B")
df$x <- c(126,40,12,42,17,150,54,35,21,71,52,115,52,40,22,73,98,35,196)
df$y <- c(92,62,4,23,60,60,49,41,50,76,52,24,9,78,71,25,21,22,25)
df[,1] <- NULL
df$fv <- df %>%
filter(!is.na(x)) %>%
lm(y ~ x*CATEGORY,.) %>%
fitted.values()
p <- plot_ly(data = df,
x = ~x,
y = ~y,
color = ~CATEGORY,
type = "scatter",
mode = "markers"
) %>%
add_trace(x = ~x, y = ~fv, mode = "lines")
p
It works fine since I need to have multiple regression line on the same plot, but what I would really need is polynomial regression lines for each category. I tried to replace "lm(y ~ x*CATEGORY,.) " with the following:
df1$fv <- df1 %>%
filter(!is.na(x)) %>%
lm(y ~ poly(x*CATEGORY,.),2) %>%
fitted.values()
but it doesn't work. Any suggestions? Thank you
