excel 如何在我的图上添加指数趋势线?

2admgd59  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(149)

我有一些关于生物量的数据(细胞浓度)以上的时间,我想添加一个指数趋势线,就像在Excel中。这是非常容易的Excel,但它似乎更难在R从我在互联网上看到的。例如,一个 Dataframe 是细胞浓度以上的时间,我想绘制它在Excel中(与趋势线的方程)

我在互联网上看到过一些解决方案,但从来没有成功地与我的数据,因为总是有一些问题说,例如,开始值不正确或不完整。
我知道我必须使用线性回归和非线性回归,并使用log然后拟合成指数。但唯一一次我认为我成功了,结果比Excel低了两倍。
请原谅我的英语,我是法国人。我真的希望有人能帮助我,因为我非常需要帮助,这是我的硕士学位实习。
对于那些谁要求写我的数据,以便您可以更好地理解和可视化/帮助我,在这里
| 天数|生物质|
| --------------|--------------|
| 0|10330.18|
| 1|小行星13057.50|
| 四|87274.18|
| 五|153234.19|
| 六|497754.25|
| 八|824191.82|
| 十一|小行星4605805.31|
| 十二岁|3515812.04|
| 十四岁|5993561.95|
| 十八岁|7593713.16|
| 十九岁|7283247.21|
| 二十|5904830.70|

dput(Df1)
structure(list(Days = c(0L, 1L, 4L, 5L, 6L, 8L, 11L, 12L, 14L, 
18L, 19L, 20L), Biomasse = c(10330.1846864179,13057.5028857253, 
87274.1823778376, 153234.186225471,
497754.251635244,824191.823778376,
4605805.30973451, 3515812.0430935,  5993561.94690265, 
7593713.15890727,7283247.21046556, 5904830.70411697)), class = 
"data.frame", row.names = c(NA, -12L))
h43kikqp

h43kikqp1#

请注意,请不要提供数据的屏幕截图,而是提供代码以使问题可重现。您可以永远提供dput()的输出作为问题的一部分,并将 Dataframe 的名称作为函数的参数。
我在下面提供的是黑客,因为公式不是从数据本身得出的,而只是遵循excel图中提供的公式。

exp_curve <- function(x) { 17353 * exp(0.4758 * x) }

mydf <- data.frame(cell = c(1.03 * 1000, 
                            8.73 * 1000, 
                            1.53 * 10000, 
                            4.98 * 100000, 
                            8.24 * 100000, 
                            4.61 * 1000000, 
                            5.52 * 1000000, 
                            5.99 * 1000000, 
                            7.59 * 1000000, 
                            7.28 * 1000000, 
                            5.9 * 1000000),
                   day = c(0, 4, 5, 6, 8, 11, 12, 14, 18, 19, 20))

trend_df <- data.frame(day = 0:14, cell = exp_curve(0:14))

form_df <- data.frame(day = 12, cell = 11000000, label = "y = 17353e<sup>0,4758x</sup><br>R<sup>2</sup> = 0,791")

library(ggplot2)
library(ggtext)

ggplot(data = trend_df, aes(x = day, y = cell)) + 
  stat_smooth(formula = y ~ exp_curve(x)) +
  geom_point(data = mydf, aes(x = day, y = cell)) +
  geom_textbox(data = form_df, aes(label = label), box.colour = alpha("black", 0), fill = alpha("white", 0)) +
  labs(title = "Growth curve of C1 culture", y = "Biomass", x = "Days") +
  scale_y_continuous(labels = scales::label_scientific())

相关问题