首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用圆滑的方式将多条跟踪/趋势线(每条有数据子集)添加到R中的单个散射点上

如何使用圆滑的方式将多条跟踪/趋势线(每条有数据子集)添加到R中的单个散射点上
EN

Stack Overflow用户
提问于 2016-09-21 10:46:26
回答 1查看 3K关注 0票数 3

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

代码语言:javascript
复制
    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

下面是我使用的代码:

代码语言:javascript
复制
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,但是我不知道如何在这个函数中提取数据子集。见下文:

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 10:52:47

做到这一点的最简单方法是在ggplot本身内,使用geom_smooth为您进行回归:

代码语言:javascript
复制
lawn <- ggplot(dat, aes(x=CWD, y=Lawn, colour=factor(Year))) + 
  geom_point() +
  geom_smooth(method = 'lm', se = FALSE)

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

有了你的样本数据:

关于颜色,请看一下?scale_colour_discrete

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39614395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档