这听起来像是一个非常基本的问题,很可能是这样,但我不知道如何在绘制locfit对象时更改线宽。如果你做一个简单的测试,例如:
locfit
plot(locfit::locfit(~rnorm(n = 1000)))
并将其与
plot(locfit::locfit(~rnorm(n = 1000)), lwd = 2.0)
您将看到绘制的线在两个图中具有相同的粗细。因此,在绘制locfit对象时,使用lwd不起作用?是否有任何变通方法?谢谢!
lwd
6kkfgxo01#
您可以使用您的模型predict输出,以在空plot上使用lines,从而可以使用lwd更改线宽,如下所示:
predict
plot
lines
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
qyzbxkaa2#
在现有的函数中,目前还没有这样做的方法。当您在locfit对象上调用plot()时,它会在您的对象上调用preplot.locift(),然后是plot.preplot.locfit(),plot.preplot.locfit()调用plot.locfit.1d()。代码中的相关行如下:
plot()
preplot.locift()
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(),它无法访问...中指定的其他参数
...
lines()
2条答案
按热度按时间6kkfgxo01#
您可以使用您的模型
predict
输出,以在空plot
上使用lines
,从而可以使用lwd
更改线宽,如下所示:创建于2023年2月9日,使用reprex v2.0.2
qyzbxkaa2#
在现有的函数中,目前还没有这样做的方法。当您在
locfit
对象上调用plot()
时,它会在您的对象上调用preplot.locift()
,然后是plot.preplot.locfit()
,plot.preplot.locfit()
调用plot.locfit.1d()
。代码中的相关行如下:正如您所看到的,
...
将传递到plot
函数,但该行实际上添加了lines()
,它无法访问...
中指定的其他参数