par(mfrow=c(1,3)) plot(roc.full,ylim = c(-1, 2),main="FULL") plot(roc.aic,ylim = c(-1, 2),main="AIC") plot(roc.bic,ylim = c(-1, 2),main="BIC")的图片显示出来的y轴长度没有变?
时间: 2023-09-11 10:10:11 浏览: 127
你的代码中设置了 `ylim = c(-1, 2)` 来限制 y 轴的范围,但是图片显示出来的 y 轴长度没有变化,可能是因为 y 轴的 ticks(刻度)被压缩在了上下限之间,导致看起来 y 轴的长度没有改变。
你可以尝试使用 `yaxs = "i"` 参数来设置 y 轴的刻度。这个参数可以控制 y 轴的 ticks 如何计算。默认值是 "r",表示按照范围(range)来计算 ticks。而 "i" 表示按照实际数据(internal)来计算 ticks,这样可以确保 y 轴的 ticks 在指定范围内均匀分布。
例如,你可以将代码修改为如下形式:
```R
par(mfrow=c(1,3))
plot(roc.full, ylim = c(-1, 2), yaxs = "i", main = "FULL")
plot(roc.aic, ylim = c(-1, 2), yaxs = "i", main = "AIC")
plot(roc.bic, ylim = c(-1, 2), yaxs = "i", main = "BIC")
```
这样就可以确保 y 轴的 ticks 在指定范围内均匀分布,看起来 y 轴的长度就会有所改变。
相关问题
plotJL <- function(city="JL") { x_label <- seq(from=as.Date("2022/2/25"),to=as.Date("2022/5/25"),by=7) pfile=paste0("Fig_",city,".png") png(pfile,width = 500*6,height = 500*4) par( mfrow=c(2,2),mar=c(5,5,5,1)*3 ) plot(df.pred$date,df.pred$dI,pch='x',xaxt='n', xlab="Date",ylab="Daily Confirmed" ,cex.lab=3,cex.axis = 2, cex=3) axis(1,x_label,format(x_label,"%m-%d"),las=1,cex.axis=2) title(main = "A",cex.main=3) predlines <- c(1:10) plty <- c(2:11) pcol <- c(2:11) matlines(df.mean$date,df.mean[,3+predlines], lty=1,col=1,lwd = 3) matlines(df.pred$date,df.pred[,3+predlines], lty=plty,col=pcol,lwd = 2) abline(v=df.mean$date[c(18,27)],lty=2) legend("topright",paste("Predicted on",df.pred$date[(18:50)][predlines]), lty=plty,col=pcol,cex = 3,lwd=2 ) plot(df.pred$date,df.pred$dI,pch='x',xaxt='n', xlab="Date",ylab="Daily Confirmed" ,cex.lab=3,cex.axis = 2, cex=3) axis(1,x_label,format(x_label,"%m-%d"),cex.axis=2) title(main = "B",cex.main=3) predlines <- c(11:18) plty <- c(2:9) pcol <- c(2:9) matlines(df.mean$date,df.mean[,3+predlines], lty=1,col=1,lwd = 3) matlines(df.pred$date,df.pred[,3+predlines], lty=plty,col=pcol,lwd = 2) abline(v=df.mean$date[c(28,35)],lty=2) legend("topright",paste("Predicted on",df.pred$date[(18:50)][predlines]), lty=plty,col=pcol,cex = 3,lwd=2 ) plot(df.pred$date,df.pred$dI,pch='x',xaxt='n', xlab="Date",ylab="Daily Confirmed" ,cex.lab=3,cex.axis = 2, cex=3) axis(1,x_label,format(x_label,"%m-%d"),cex.axis=2) title(main = "C",cex.main=3) predlines <- c(19:26) plty <- c(2:9) pcol <- c(2:9) matlines(df.mean$date,df.mean[,3+predlines], lty=1,col=1,lwd = 3) matlines(df.pred$date,df.pred[,3+predlines], lty=plty,col=pcol,lwd = 2) abline(v=df.mean$date[c(36,43)],lty=2) legend("topright",paste("Predicted on",df.pred$date[(18:50)][predlines]), lty=plty,col=pcol,cex = 3,lwd=2 ) plot(df.pred$date,df.pred$dI,pch='x',xaxt='n', xlab="Date",ylab="Daily Confirmed" ,cex.lab=3,cex.axis = 2, cex=3) axis(1,x_label,format(x_label,"%m-%d"),cex.axis=2) title(main = "D",cex.main=3) predlines <- c(27:33) plty <- c(2:8) pcol <- c(2:8) matlines(df.mean$date,df.mean[,3+predlines], lty=1,col=1,lwd = 3) matlines(df.pred$date,df.pred[,3+predlines], lty=plty,col=pcol,lwd = 2) abline(v=df.mean$date[c(44,50)],lty=2) legend("topright",paste("Predicted on",df.pred$date[(18:50)][predlines]), lty=plty,col=pcol,cex = 3,lwd=2 ) dev.off() }
这段代码是用于绘制四个子图的函数,每个子图都是基于来自数据框 df.pred 和 df.mean 的数据绘制的。每个子图都有一个标题(A,B,C,D),并且包含了预测线和实际线。其中预测线是基于预测数据绘制的,实际线是基于实际数据绘制的。每个子图的预测线都有一个图例,用于说明预测线是基于哪个日期的数据绘制的。这些图形将被保存在文件名为 "Fig_JL.png" 的 PNG 文件中。
帮我修正含有以下错误Error in plot.window(xlim, ylim, log, ...) : 'ylim'值不能是无限的代码file.path <- "C:/Users/27745/Desktop/习题5.3数据.txt" number <- readLines(file.path) x <-ts(number,start = 1867) par(mfrow = c(1,2)) plot(x)
这个错误通常是由于数据中存在无限值或缺失值导致的。为了修正这个错误,你可以尝试使用`is.infinite()`和`is.na()`函数来检测数据中是否存在无限值或缺失值,并进行相应的处理。
下面是修正代码的示例:
```
file.path <- "C:/Users/27745/Desktop/习题5.3数据.txt"
number <- readLines(file.path)
number <- as.numeric(number) # 将读取的字符串转换为数值型数据
number[is.infinite(number)] <- NA # 将无限值转换为缺失值
x <- ts(number, start = 1867)
par(mfrow = c(1, 2))
plot(x)
```
注意,如果数据中确实存在无限值,将其转换为缺失值可能会影响后续的分析结果。因此,在进行数据处理时需要谨慎处理。
阅读全文