R 不创建线性趋势线

R 不创建线性趋势线,r,plot,shiny,plotly,R,Plot,Shiny,Plotly,在为散点图创建趋势线时,我使用add_trace添加线性趋势线 当数据只有一个“系列”数据时,即只有一组坐标,下面的代码工作正常。然而,当我介绍一些系列时,“趋势线”如下所示: 以下是守则的相关部分: p <- plot_ly(filteredFull(), x=Relative.Time.Progress, y=cumul.ans.keystroke, mode='markers', color=KeystrokeRate, size=Keys

在为散点图创建趋势线时,我使用
add_trace
添加线性趋势线

当数据只有一个“系列”数据时,即只有一组坐标,下面的代码工作正常。然而,当我介绍一些系列时,“趋势线”如下所示:

以下是守则的相关部分:

    p <- plot_ly(filteredFull(), x=Relative.Time.Progress, y=cumul.ans.keystroke,
                 mode='markers', color=KeystrokeRate, size=KeystrokeRate,
                 marker=list(sizeref=100), type='scatter', 
                           hoverinfo='text', text=paste("token: ",Token, "Keystrokes: ",
                                                          KeystrokeCount)) %>%
        layout(
          xaxis=list(range=c(0,1)),
          yaxis=list(range=c(0,max(filteredFull()$cumul.ans.keystroke)))
        )

     lm.all <- lm(cumul.ans.keystroke ~ Relative.Time.Progress,
              data=df)
      observe(print(summary(lm.all)))
      p <- add_trace(p, y=fitted(lm.all), x=Relative.Time.Progress,
                     mode='lines') %>%
        layout(
          xaxis= list(range = c(0,1))
        )
p
p%
布局(
xaxis=list(范围=c(0,1)),
yaxis=list(范围=c(0,最大值(filteredFull()$cumul.ans.keystroke)))
)

lm.all我认为您需要在
add_trace(p,y=fitted(lm.all),x=Relative.Time.Progress,mode='lines')
中指定
data=…
参数

第一个跟踪似乎是一个子集,但第二个跟踪使用回归拟合值,这些值是通过将回归模型拟合到整个数据集而获得的

filteredFull()
vs
df
中的
相对.Time.Progress
可能不匹配

这里有一个例子。希望有助于

library(plotly)
df <- diamonds[sample(1:nrow(diamonds), size = 500),]

fit <- lm(price ~ carat, data = df)

df1 <- df %>% filter(cut == "Ideal")

plot_ly(df1, x = carat, y = price, mode = "markers") %>% 
  add_trace(x = carat, y = fitted(fit), mode = "lines")

现在有点变化,下面的代码应该可以正常工作:

df <- diamonds[sample(1:nrow(diamonds), size = 500),]
fit <- lm(price ~ carat, data = df)
df1 <- df %>% filter(cut == "Ideal")
plot_ly() %>%
    add_trace(data = df1, x = ~carat, y = ~price, mode = "markers") %>% 
    add_trace(data = df, x = ~carat, y = fitted(fit), mode = "lines")
df%
添加轨迹(数据=df,x=~carat,y=fitted(fit),mode=“lines”)

需要从空绘图开始并添加记录道。

按照与值相同的顺序排列正在输入的数据帧。我也有同样的问题。它通过索引进行跟踪,至少在我的例子中是这样。我应该在代码的哪一部分进行排序?我认为应该先按x排序,然后按y排序。我不能说这就是这里的问题所在,但考虑到它绘制的混乱,它似乎是按照数据中的顺序而不是x和y值来跟踪点。@Adam_G你能在哪里解决这个问题?不。我尝试在df上使用
排列
,但没有成功
df <- diamonds[sample(1:nrow(diamonds), size = 500),]
fit <- lm(price ~ carat, data = df)
df1 <- df %>% filter(cut == "Ideal")
plot_ly() %>%
    add_trace(data = df1, x = ~carat, y = ~price, mode = "markers") %>% 
    add_trace(data = df, x = ~carat, y = fitted(fit), mode = "lines")