您提到“lm
该类具有为该函数定义的某种接口plot()
”。实际上,这是 R 中的一种 S3 机制,它遵循“method.class”命名约定。在这里,方法是plot
,类是lm
。您无需输入plot.lm
即可获得这些图。当你调用 时plot
,R 将首先检查第一个参数的类类型,并发现它(m
在这种情况下)是类的lm
;然后 R 自动调用该plot.lm
函数。
对于该方法,您可以通过输入Rplot
看到它适用于更多类:methods(plot)
[1] plot.acf* plot.data.frame* plot.decomposed.ts* plot.default plot.dendrogram*
[6] plot.density plot.ecdf plot.factor* plot.formula* plot.function
[11] plot.gofm* plot.gofv* plot.hap.score* plot.hclust* plot.histogram*
[16] plot.HoltWinters* plot.isoreg* plot.lm plot.md plot.medpolish*
[21] plot.mlm plot.ppr* plot.prcomp* plot.princomp* plot.profile.nls*
[26] plot.spec plot.spline* plot.stepfun plot.stl* plot.table*
[31] plot.ts plot.tskernel* plot.TukeyHSD plot.xyVector*
Non-visible functions are asterisked
你看plot.lm
就是其中之一。要学习其中任何一项,您可以使用fix(plot.lm)
. 然后你会在第一行注意到:
caption = list("Residuals vs Fitted",
"Normal Q-Q", "Scale-Location", "Cook's distance", "Residuals vs Leverage",
expression("Cook's dist vs Leverage " * h[ii]/(1 - h[ii])))
plot
显然,当您调用类对象时,您会知道构建了哪些图lm
:) 希望这会有所帮助!