R 如何向ggplot2中的各种散点图添加指数趋势线?

R 如何向ggplot2中的各种散点图添加指数趋势线?,r,ggplot2,exponential,R,Ggplot2,Exponential,第一次在这里发布问题 我似乎找不到一个简单的方法将指数趋势线添加到我的各种散点图中。我有8个树种,它们的高度(米)和胸径(胸径,简称厘米)的关系不同。目前,我已经为每种树种绘制了不同的散点图,但我似乎找不到添加指数趋势线的方法 我使用的代码如下: ggplot(data, aes(Height__m_,DBH__cm_)) + geom_point(aes(color = Species)) + facet_wrap(~Species, ncol = 4, nrow = 2) + l

第一次在这里发布问题

我似乎找不到一个简单的方法将指数趋势线添加到我的各种散点图中。我有8个树种,它们的高度(米)和胸径(胸径,简称厘米)的关系不同。目前,我已经为每种树种绘制了不同的散点图,但我似乎找不到添加指数趋势线的方法

我使用的代码如下:

ggplot(data, aes(Height__m_,DBH__cm_)) +
  geom_point(aes(color = Species)) +
  facet_wrap(~Species, ncol = 4, nrow = 2) +
  labs(title = "DBH - Height Relationship", y = "Height (m)", x = "DBH (cm)")
当我添加
geom_smooth
函数时,我似乎无法添加指数趋势线,因为我知道这些类型的关系是最适合的。我尝试使用的代码是:

 geom_smooth(method = "nls", formula =  y ~ a * exp(b * x), aes(color = "Exponential"),
          se = FALSE, start = c(a = 1, b= 1))`
如果还有可能增加R2的价值,那也会受到欢迎。
我会感谢你的帮助

我们没有您的数据,但这里有一个使用内置的
Orange
数据集的示例。在这种情况下,将较低的起始
b
值设置为0.001会删除一条警告消息(1:在
stat\u smooth()中计算失败)
: 奇异的梯度阻碍了找到任何可行的拟合

ggplot(Orange, aes(age,circumference)) +
  geom_point() +
  facet_wrap(~Tree, nrow = 2) +
  stat_smooth(method = 'nls', 
            method.args = list(start = c(a=1, b=0.001)), 
            formula = y~a*exp(b*x), colour = 'black', se = FALSE)

我们没有您的数据,但这里有一个使用内置的
橙色
数据集的示例。在这种情况下,将较低的起始
b
值设置为0.001会删除一条警告消息(1:stat\u smooth()中的计算失败
: 奇异的梯度阻碍了找到任何可行的拟合

ggplot(Orange, aes(age,circumference)) +
  geom_point() +
  facet_wrap(~Tree, nrow = 2) +
  stat_smooth(method = 'nls', 
            method.args = list(start = c(a=1, b=0.001)), 
            formula = y~a*exp(b*x), colour = 'black', se = FALSE)

尝试使用
geom_smooth
函数后,您得到了什么输出或错误?可能相关:大约有17个警告,但它们的状态相同:
计算在stat_smooth()中失败
:迭代次数超过最大值50 14:in(函数(公式,数据=父.frame(),开始,控制=nls.control())……没有为某些参数指定的起始值。初始化“A”,“B”到“1”。考虑指定“开始”或使用SelfStutt模型“< /代码>”,您得到了什么输出或错误,然后您尝试了<代码> GEOMSOLIST/<代码>函数?可能相关:大约有17条警告,但它们都是相同的:<代码>计算失败。在
stat_smooth()
:迭代次数超过最大值50 14:in(函数(公式,数据=父.frame(),开始,控制=nls.control())……不为某些参数指定起始值。初始化“A”,“B”到“1”。考虑指定“开始”或使用SelfStutt模型“< /代码>”,这样做,我把B值改为0.001,现在显示指数趋势。好答案,+1,虽然我猜样本数据的一个更合适的模型可能是一个线性模型。el…;P这样做了,我将b值改为0.001,现在它显示了指数趋势。回答不错,+1,尽管我想更适合样本数据的模型可能是线性模型…;P