在R中绘制locfit对象时如何改变线宽?

q3qa4bjr  于 2023-02-10  发布在  其他
关注(0)|答案(2)|浏览(215)

这听起来像是一个非常基本的问题,很可能是这样,但我不知道如何在绘制locfit对象时更改线宽。如果你做一个简单的测试,例如:

plot(locfit::locfit(~rnorm(n = 1000)))

并将其与

plot(locfit::locfit(~rnorm(n = 1000)), lwd = 2.0)

您将看到绘制的线在两个图中具有相同的粗细。因此,在绘制locfit对象时,使用lwd不起作用?是否有任何变通方法?
谢谢!

6kkfgxo0

6kkfgxo01#

您可以使用您的模型predict输出,以在空plot上使用lines,从而可以使用lwd更改线宽,如下所示:

library(locfit)
#> locfit 1.5-9.7    2023-01-02
set.seed(7)
fit <- locfit(~rnorm(n = 1000))
plot(fit)

set.seed(7)
xvalues <- seq(min(rnorm(n = 1000)), max(rnorm(n = 1000)), length.out = 100)
pred <- predict(fit, xvalues)
plot(1, type="n", xlab="", ylab="", xlim=c(-3, 3), ylim=c(0, 0.4))
lines(xvalues, pred, lwd = 10)

创建于2023年2月9日,使用reprex v2.0.2

qyzbxkaa

qyzbxkaa2#

在现有的函数中,目前还没有这样做的方法。当您在locfit对象上调用plot()时,它会在您的对象上调用preplot.locift(),然后是plot.preplot.locfit()plot.preplot.locfit()调用plot.locfit.1d()。代码中的相关行如下:

plot(xev[ord], yy[ord], type = "n", xlab = xlab, ylab = ylab, 
      main = main, xlim = range(x$xev[[1]]), ylim = ylim, 
      ...)
  }
  lines(xev[ord], yy[ord], type = type, lty = lty, col = col)

正如您所看到的,...将传递到plot函数,但该行实际上添加了lines(),它无法访问...中指定的其他参数

相关问题