r - 如何使用 plotly 在 R 中将每个带有数据子集的多条轨迹/趋势线添加到单个散点图

标签 r plot ggplot2 scatter-plot plotly

plotly 包中,我使用了 ggplot() 函数和 ggplotly() 函数。我想用 x 轴上的 CWD 数量和 y 轴上的 Lawn 数量创建一个散点图。每个散点图应该有三条线来反射(reflect)每年的线性关系(2013 年、2014 年、2015 年)。 Lawn 每年有 10 分,CWD 有 10 分。作为我的数据样本如下:

    Year CWD Lawn
 1  2013   0  420
 2  2013   6  390
 3  2013  14  410
 4  2013  12  349
 5  2013   3  348
 6  2013  46  354
 7  2013 121  311
 8  2013  56  381
 9  2013  42  386
 10 2013  26  381
 11 2014   2  121
 12 2014   2  163
 13 2014   3  298

这是我使用的代码:

library(plotly)

### Amount of Lawn versus Amount of CWD
fit<-lm(Lawn~CWD,data=data)
lawn <- ggplot(data, aes(x=CWD, y=Lawn, colour=Year)) + geom_point()
ggplotly()
add_trace(data=data, x = CWD, y = fitted(fit), mode = "lines")

我知道上面的代码是不正确的,因为它只适合图表中的一条线而不考虑年份。我曾尝试使用 geom_abline 但我不知道如何在此函数中提取数据子集。见下文:

enter image description here

那么首先,我如何绘制三个轨迹(每年一个)?我应该每年将我的数据以单独的 .csv 文件导入 R 中吗?当然,在代码中有一种更简单的方法可以做到这一点。 其次,如何改变点和线的颜色?

最佳答案

最简单的方法是在 ggplot 中使用 geom_smooth 为您进行回归:

lawn <- ggplot(dat, aes(x=CWD, y=Lawn, colour=factor(Year))) + 
  geom_point() +
  geom_smooth(method = 'lm', se = FALSE)

请注意,我将数据命名为 dat,因为 data 是 R 中的一个函数。

用你的样本数据:

enter image description here

关于颜色,看看 ?scale_colour_discrete

关于r - 如何使用 plotly 在 R 中将每个带有数据子集的多条轨迹/趋势线添加到单个散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39614395/

相关文章:

r - 如何在 R/ggplot2 中创建数据的阶梯图?

python - 当数据不是周期性的时,如何绘制基于堆叠的条形图

r - 使用 stat_summary 用观察次数注释绘图

r - 如何在 R 中的 ggplotly 中更改图例位置

r - 如何使用ggplot2使抖动点居中?

javascript - 如何使用 R 包装器为气泡图包含 highcharts 运动插件?

linux - 在 Linux CentOS 6.5 版上安装 R3.1.1 时出现问题(检查 LDFLAGS 以获取 Fortran 库的路径)

r - 如何在 R 中使用二项式分布来拟合 GLM?

python - bar() 缺少 1 个必需的位置参数 : 'left'

r - 渲染 PDF 时不在 for 循环中打印绘图(自 ggplot2 更新以来)