R 在ggplot2中拟合功率曲线时出现问题

R 在ggplot2中拟合功率曲线时出现问题,r,ggplot2,nls,R,Ggplot2,Nls,我在r中有一个具有以下列的数据集: > names(dataset) [1] "Corp.Acct.Name" "Product-name" "Package.Type" "Total.Quantity" "ASP.Ex.Works" 我想做的是创建一个散点图,x轴上有Total.Quantity,y轴上有ASP.Ex.Works,然后将功率曲线拟合到散点图 我使用stat_s

我在r中有一个具有以下列的数据集:

> names(dataset)
[1] "Corp.Acct.Name" "Product-name"   "Package.Type"   "Total.Quantity" "ASP.Ex.Works"  
我想做的是创建一个散点图,x轴上有
Total.Quantity
,y轴上有
ASP.Ex.Works
,然后将功率曲线拟合到散点图

我使用stat_smooth尝试了以下操作:

p <- ggplot(data = dataset,                # specify dataset
            aes(x = Total.Quantity, y = ASP.Ex.Works)) + # Quantity on x, ASP on Y
  geom_point(pch = 1) +                  # plot points (pch = 1: circles, type '?pch' for other options)
  xlim(0, xlimmax) +
  ylim(0, ylimmax) +
  xlab("Quantity (lbs)") +
  ylab("Average Sale Price Ex Freight ($)") + 
  #Add line using non-linear regreassion
  stat_smooth(method="nls",formula =  ASP.Ex.Works ~a*exp(-Total.Quantity*b),method.args=list(start=c(a=2,b=2)),se=F,color="red")
p
我尝试了几种不同的方法,包括在ggplot之外指定模型,但没有任何运气。我正在尝试在r中重新创建excel的power curve选项,以便在power BI中实现动态可视化


有人能告诉我如何最有效地完成这项工作的正确方向吗?

尝试将公式从
ASP.Ex.Works~a*exp(-Total.Quantity*b)
切换到
y~a*exp(-x*b)
,因为
geom_smooth
在ggplot内的绘图数据框上工作,列是根据变量映射到的美学而命名的,而不是原始变量名。@AllanCameron这正是它。。。虽然我键入了这些列名,但它并没有告诉我这些列名映射到了x和y。。。现在,我得到了一个新的错误,“警告消息:计算在
stat\u smooth()
中失败:评估模型时产生的缺失值或无穷大”,我猜测是由于数据中的缺失值或错误值而产生的。可能是这样。我没有你的数据,所以我不能肯定地告诉你。
Warning message:
Computation failed in `stat_smooth()`:
parameters without starting value in 'data': ASP.Ex.Works, Total.Quantity