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
使用visreg R将多元图中的回归线限制在数据范围内_R_Linear Regression_Lm_Data Fitting - Fatal编程技术网

使用visreg R将多元图中的回归线限制在数据范围内

使用visreg R将多元图中的回归线限制在数据范围内,r,linear-regression,lm,data-fitting,R,Linear Regression,Lm,Data Fitting,我在将“visreg”图中的回归线限制在每个图的数据范围内时遇到问题。它们当前绘制到整个数据帧的范围,当我更改单个限制时,它仍然以可视方式绘制到整个数据帧,但不是正确的数据点。我的示例代码如下: CODrysub Humid Wet.sub.himid Dry.sub.himid Semi.arid Arid Hyper.arid Nov 2004 2.20 2.22 2.16 2.03 1.79 1.68 Dec 2

我在将“visreg”图中的回归线限制在每个图的数据范围内时遇到问题。它们当前绘制到整个数据帧的范围,当我更改单个限制时,它仍然以可视方式绘制到整个数据帧,但不是正确的数据点。我的示例代码如下:

CODrysub
         Humid Wet.sub.himid Dry.sub.himid Semi.arid Arid Hyper.arid
Nov 2004  2.20          2.22          2.16      2.03 1.79       1.68
Dec 2004  2.75          2.72          2.52      2.32 2.08       1.93
Jan 2005  2.98          2.92          2.68      2.43 2.18       2.03
Feb 2005  2.81          2.80          2.62      2.37 2.14       2.04
Mar 2005  2.43          2.44          2.33      2.16 1.99       1.96
Apr 2005  2.30          2.25          2.08      2.00 1.90       1.91

SMDrysub
         Humid Wet.sub.himid Dry.sub.himid Semi.arid Arid Hyper.arid
Nov 2004  0.26          0.21          0.15      0.08 0.05       0.07
Dec 2004  0.22          0.16          0.10      0.07 0.06       0.08
Jan 2005  0.19          0.12          0.08      0.07 0.07       0.09
Feb 2005  0.18          0.11          0.08      0.07 0.08       0.10
Mar 2005  0.18          0.13          0.09      0.07 0.07       0.10
Apr 2005  0.19          0.15          0.10      0.07 0.06       0.08

library(visreg)
Humida<-cbind(CODrysub[,1],SMDrysub[,1]) 
Humid2a<-as.data.frame(Humida)
colnames(Humid2a)<-c("CO","SM")
fit1a<-lm(CO~SM,data=Humid2a)

WSHa<-cbind(CODrysub[,2],SMDrysub[,2])
WSH2a<-as.data.frame(WSHa)
colnames(WSH2a)<-c("CO","SM")
fit2a<-lm(CO~SM,data=WSH2a)
##To plot
## Overall plot of an empty frame with dataframe labels
plot(0,xlim=c(0.05,0.31),ylim=c(1.5,3.4),cex.main=1, main= "(a) Scatterplots without soil moisture (Dry season)",xlab=NA,ylab=NA)

par(new=T)
visreg(fit1a,xlab="SM",ylab="CO",points=list(cex=1.2, pch=20,col="deepskyblue4") ,alpha=0.8,line=list(col="deepskyblue4",lwd=2),fill=list(col=adjustcolor("deepskyblue4", alpha.f = 0.09)), xlim=c(0.05,0.31),ylim=c(1.5,3.4),xaxt="n",yaxt="n")
par(new=T)
visreg(fit2a,xlab=NA,ylab=NA,points=list(cex=1.2, pch=20,col="dodgerblue1") ,line=list(col="dodgerblue1",lwd=2),fill=list(col=adjustcolor("dodgerblue1", alpha.f = 0.09)) ,xlim=c(0.05,0.31),ylim=c(1.5,3.4),alpha=0.8,xaxt="n",yaxt="n")
CODrysub
湿-湿-亚干旱-亚干旱-亚干旱-亚干旱-亚干旱-超干旱
2004年11月2.20 2.22 2.16 2.03 1.79 1.68
2004年12月2.75 2.72 2.52 2.32 2.08 1.93
2005年1月2.98 2.92 2.68 2.43 2.18 2.03
2005年2月2.81 2.80 2.62 2.37 2.14 2.04
2005年3月2.43 2.44 2.33 2.16 1.99 1.96
2005年4月2.30 2.25 2.08 2.00 1.90 1.91
SMDrysub
湿-湿-亚干旱-亚干旱-亚干旱-亚干旱-亚干旱-超干旱
2004年11月0.26 0.21 0.15 0.08 0.05 0.07
2004年12月0.22 0.16 0.10 0.07 0.06 0.08
2005年1月0.19 0.12 0.08 0.07 0.07 0.09
2005年2月0.18 0.11 0.08 0.07 0.08 0.10
2005年3月0.18 0.13 0.09 0.07 0.07 0.10
2005年4月0.19 0.15 0.10 0.07 0.06 0.08
图书馆(visreg)

Humida如果您想扩展绘图的x(或y)范围,而不是拟合线的范围,则应首先使用
myPlotData创建绘图数据。请使其可复制或提供样本数据。另请参见如何使用
ggplot2
实现这一点的一些示例。Hi@JasonAizkalns,我刚刚添加了一些样本数据,希望能够使分析重现。
xlim <- c(0.05,0.31)
ylim <- c(1.5,3.4)

plot(0,xlim=xlim, ylim=ylim, cex.main=1, 
     main="(a) Scatterplots without soil moisture (Dry season)", 
     xlab=NA, ylab=NA)

par(new=T)
visreg1a <- visreg(fit1a, plot = FALSE)
plot.visreg(visreg1a, 
            xlab="SM", ylab="CO", points=list(cex=1.2, pch=20,col="deepskyblue4"), 
            alpha=0.8, line=list(col="deepskyblue4", lwd=2), 
            fill=list(col=adjustcolor("deepskyblue4", alpha.f = 0.09)), 
            xlim=xlim, ylim=ylim, xaxt="n", yaxt="n")

par(new=T)
visreg2a <- visreg(fit2a, plot = FALSE)
plot.visreg(visreg2a, 
            xlab=NA, ylab=NA, points=list(cex=1.2, pch=20,col="dodgerblue1"), 
            line=list(col="dodgerblue1",lwd=2), 
            fill=list(col=adjustcolor("dodgerblue1", alpha.f = 0.09)), 
            xlim=xlim, ylim=ylim, alpha=0.8,xaxt="n",yaxt="n")
data_combined <- rbind(data.frame(Climate = "Humid", Humid2a),
                       data.frame(Climate = "Wet-subhumid", WSH2a))
fit_combined <- lm(CO ~ SM*Climate, data = data_combined)
visreg(fit_combined, "SM", by = "Climate", overlay = TRUE, 
       main = "(a) Scatterplots without soil moisture (Dry season)",
       points=list(cex=1))
visreg_data <- visreg(fit_combined, "SM", by = "Climate", plot = FALSE)
plot.visreg(visreg_data, overlay = TRUE, xlim = c(0.05, 0.31))
library(ggplot2)
ggplot(data_combined, aes(SM, CO, color=Climate)) + stat_smooth(method = "lm") + geom_point()