如何在 R 中的一个图中拟合两个半变异函数?

问题描述

我试图在一个图中绘制两个半变异函数,但不幸的是它不起作用。 我想解决方案很简单,但我在拉丁语的末尾。

这是我想放在一个图中的变异函数代码

variog_iso_a1 <- fit.variogram(  emp_variog_iso_a1,vgm(  psill = 2000,model = "Sph",range = 200,nugget = 500))
        
        plot(emp_variog_iso_a1,variog_iso_a1,as.table=TRUE,main = "Acker H1 C_org",plot.numbers=T)


variog_iso_a2 <- fit.variogram(  emp_variog_iso_a2,nugget = 500))
        
        plot(emp_variog_iso_a2,variog_iso_a2,main = "Acker H2 C_org",plot.numbers=T)

其次,我还想在一个图中绘制两个半变异函数,但由于值不同,第二个 y 轴位于右侧。

variog_iso_a1 <- fit.variogram(  emp_variog_iso_a1,plot.numbers=T)


variog_iso_l1 <- fit.variogram(  emp_variog_iso_l1,nugget = 500))
        
        plot(emp_variog_iso_l1,variog_iso_l1,main = "Acker H1 Lichtwert",plot.numbers=T)

我只能用两个显示每个变异函数的点,但不能显示内部安装的模型。这是我试过但不起作用的代码

plot(emp_variog_iso_a1$dist,emp_variog_iso_a1$gamma,ylim=c(0,2500))
        points(emp_variog_iso_a2$dist,emp_variog_iso_a2$gamma,col = "red",add=T,labels=emp_variog_iso_a2$np)
        
        
        plot(emp_variog_iso_a1$dist,2500),main="Semivarianz Lichtwert und organische Substanz Horizont 1 Ackerland",ylab = "Semivarianz",xlab = "distanz" )
        par(new = TRUE)
        plot(emp_variog_iso_l1$dist,emp_variog_iso_l1$gamma,labels=emp_variog_iso_l1$np )
        
        points(emp_variog_iso_l1$dist,labels=emp_variog_iso_l1$np,yaxt = "n")
        
        plot(emp_variog_iso_a2$dist,main="Semivarianz Lichtwert und organische Substanz Horizont 2 Ackerland",xlab = "distanz" )
        points(emp_variog_iso_l2$dist,emp_variog_iso_l2$gamma,labels=emp_variog_iso_l2$np)
    

感谢您的帮助!!!

解决方法

您可以使用 variogramLine()

VL=variogramLine(YourVariogramFit,maxdist = ...)

接下来,使用 lines()

将其添加到您的绘图中
lines(VL)