R 试图在ggplot中添加非线性正趋势线
我目前正在尝试将一条非线性正曲线添加到我的对数图中,基于变量y和x之间的二次模型。我总是收到以下消息,即使在尝试更改对数质量(x)之后 “警告信息: 1:删除了包含非有限值的29行(stat_smooth)。 2:在统计平滑()中计算失败。: 可变长度不同(针对“(重量)”找到) 3:删除了包含缺失值的29行(几何点)。”R 试图在ggplot中添加非线性正趋势线,r,ggplot2,transform,R,Ggplot2,Transform,我目前正在尝试将一条非线性正曲线添加到我的对数图中,基于变量y和x之间的二次模型。我总是收到以下消息,即使在尝试更改对数质量(x)之后 “警告信息: 1:删除了包含非有限值的29行(stat_smooth)。 2:在统计平滑()中计算失败。: 可变长度不同(针对“(重量)”找到) 3:删除了包含缺失值的29行(几何点)。” 我将非常感谢任何有关此事的帮助。谢谢你抽出时间 关于第2条警告:geom_smooth中的formula参数只能将y作为LHS变量,将x作为RHS变量。默认值为y~x,但您可
我将非常感谢任何有关此事的帮助。谢谢你抽出时间 关于第2条警告:
geom_smooth
中的formula
参数只能将y
作为LHS变量,将x
作为RHS变量。默认值为y~x
,但您可以这样做,例如y~poly(x,2)
或y~spline::bs(x,df=4)
。该公式为通用公式,将使用aes中指定的x和y列
还有几件事:
geom_smooth
中使用data=species
,因为您已经在主ggplot调用中提供了data=species
geom_smooth
中,您有x=对数长度和y=对数体。我看不到您的数据,所以我不能确定,但这不是颠倒了geom_点
和geom_平滑
之间的x轴和y轴映射吗您的示例中的数据集是什么?@eipi10,发布为答案?(唯一的其他答案是指向“在ggplot之外运行
lm()
,生成预测值和SEs,使用geom_线()+geom_功能区()将预测添加到现有ggplot”的示例感谢您的回复。在我的数据框架中,我使用物种非平均值建立了一个二次模型,我现在尝试将其应用到我的图中,该图应显示物种平均值。因此,我有两列进行了对数变换,而在图上,我对变量进行了对数变换,以适应轴。以下是没有任何趋势l的基本图的代码ines:ggplot(物种,aes(x=体重,y=雄性角长))+geom_点()+比例连续(trans='log',breaks=c(0,5,10,20,5010020030500))+比例连续(trans='log',breaks=c(0,5,10,20,50100))+实验室(x=”雄性角长(cm)”
ggplot(species,aes(x=BodyMass,y= MaleHornLength))+
geom_point()+geom_smooth(mapping = aes(loglength,logbody),
data = species, stat = "smooth",method = "lm",
formula = species$loglength ~ species$logbody +Time8,
se = TRUE, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)+
scale_x_continuous(trans='log',breaks = c(0,5,10,20,50,100,200,300,500))+
scale_y_continuous(trans='log',breaks = c(0,5,10,20,50,100))+
labs(x="Male Body Mass (kg)", y="Male Horn Length (cm)")+
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
axis.text=element_text(size=12, colour = "black"),
axis.title=element_text(size=14))