Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 试图在ggplot中添加非线性正趋势线_R_Ggplot2_Transform - Fatal编程技术网

R 试图在ggplot中添加非线性正趋势线

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,但您可

我目前正在尝试将一条非线性正曲线添加到我的对数图中,基于变量y和x之间的二次模型。我总是收到以下消息,即使在尝试更改对数质量(x)之后

“警告信息: 1:删除了包含非有限值的29行(stat_smooth)。 2:在统计平滑()中计算失败。: 可变长度不同(针对“(重量)”找到) 3:删除了包含缺失值的29行(几何点)。”


我将非常感谢任何有关此事的帮助。谢谢你抽出时间

关于第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

  • 在主ggplot调用中,您有x=体质量和y=长度,但在
    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))