绘制属于数据框中特定列数据的多条回归线[重复]

Posted

技术标签:

【中文标题】绘制属于数据框中特定列数据的多条回归线[重复]【英文标题】:Plotting multiple regression lines that belong to data from a specific column in a dataframe [duplicate] 【发布时间】:2022-01-22 01:49:24 【问题描述】:

我有几个植物的数据框,其中包含三个特征测量值。

    plant_id  stem_id  stem_hei  inf_len
1       1       1       410      92
2       1       2       520     130
3       1       3       440      98
4       2       1       480     109
5       2       2       490     115
6       2       3       500     125
7       3       1       457     105
8       3       2       425      83
9       3       3       412      93
10      4       1       385     100
11      4       2       375      78
12      4       3       380      66

我为所有这些都放置了一个简单的茎高 (x=stem_hei) 与花序长度 (y=inf_len) 的关系图,它可以顺利完成。 regression line plot

我想要的是为同一关系绘制三个单独的回归线。但是每个都包含词干 1,2 和 3 的数据:(第 1 行:来自词干 1 的数据,第 2 行:来自词干 2 的数据,第 3 行相同)

我以为使用这个函数会根据stem_id的值选择数据,但它没有:

  plot(tr_correl$tall_stem_hei, tr_correl$inf_len, "stem_id" == "1")

这似乎很明显,但我真的不知道如何从这里开始。提前感谢您的帮助!

【问题讨论】:

这可以工作plot(tr_correl1$tall_stem_hei[tr_correl1$stem_id==1], tr_correl1$inf_len[tr_correl1$stem_id==1])。但是您可以使用ggplot 更优雅地绘制所有三个回归线 嗨!您的 data.frame 结构良好,可以使用ggplotplotting 库的geom_line() 层。您可以在 ggplot 2 官方文档或此 *** 帖子中找到更多信息:***.com/a/66531066/10740287 【参考方案1】:

您可以使用ggplot2 包轻松地做到这一点,使用geom_smooth。您可以更改回归类型、是否显示 SE 等等。使用美学col(和/或linetype),您可以为不同的组绘制不同的线条。

tr_correll <- data.table(stem_id=c("a","b","c"),tall_stem_hei=rnorm(9),inf_len=rnorm(9))

ggplot(tr_correll,aes(y=inf_len,x=tall_stem_hei,col=stem_id))+geom_point()+
  geom_smooth(method="lm",se=F)

【讨论】:

不幸的是它不起作用,它创建了一个单线图,而我正在寻找的是回归线。无论如何感谢您的建议,我认为 ggplot 是要走的路。 我的错,我太仓促了。固定 我无法添加不同的行。我得到的只是蓝色范围内的点。第一个带有 data.table 的代码行需要什么?我正在使用美学col 和线型,但我不知道是否正确(除了我没有linetype 功能,只有这个:ggplot(ilts, aes(y=inf_len, x=tall_stem_hei, col= stem_id, linetype_pal("stem_id")))+geom_point() + geom_smooth (method= "lm", se=F)+geom_smooth (data = ilts, method= "lm", se=F) 已修复,我成功了,非常感谢 Simone 的帮助!

以上是关于绘制属于数据框中特定列数据的多条回归线[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]

根据索引在熊猫数据框中查找特定列的值[重复]

如何在 R 中合并同一数据框中的行(基于特定列下的重复值)?

在python数据框中删除不包含列中特定字符串的多列的重复项

Pyspark:检查数据框中是不是存在列[重复]

如何根据数据框中的列值获取特定的行数[重复]