设置数据框的默认绘图属性

Set default plot attributes for a dataframe

许多包包含 plot(df) 生成特定输出的数据帧。例如。 nlme 包含 'Dialyzer' 数据帧,它在 plot(Dialyzer) 上使用网格(格子包)生成一个图,其中代码实际上是:

dotplot(rate ~ pressure | Subject, data="Dialyzer")

这方面的代码似乎包含在数据框属性中:任何人都可以指点我一个指南或包括一个关于如何设置数据框默认图的指南吗?

这是由对象的class决定的。注意 Dialyzer "data.frame".

的 class
> class(Dialyzer)
[1] "nfnGroupedData" "nfGroupedData"  "groupedData"    "data.frame"

当您调用 plot 时,它会遍历此 class 的条目并尝试找到 plot.* 方法。它找到的第一个被使用。如果一切都失败了,总会有 data.frame.

> methods("plot")
 [1] plot.acf*              plot.ACF*              plot.augPred*          plot.compareFits*      plot.data.frame*      
 [6] plot.decomposed.ts*    plot.default           plot.dendrogram*       plot.density*          plot.ecdf             
[11] plot.factor*           plot.formula*          plot.function          plot.gls*              plot.hclust*          
[16] plot.histogram*        plot.HoltWinters*      plot.intervals.lmList* plot.isoreg*           plot.lm*              
[21] plot.lme               plot.lmList*           plot.medpolish*        plot.mlm*              plot.nffGroupedData*  
[26] plot.nfnGroupedData*   plot.nls*              plot.nmGroupedData*    plot.pdMat*            plot.ppr*             
[31] plot.prcomp*           plot.princomp*         plot.profile.nls*      plot.ranef.lme*        plot.ranef.lmList*    
[36] plot.raster*           plot.shingle*          plot.simulate.lme*     plot.spec*             plot.stepfun          
[41] plot.stl*              plot.table*            plot.trellis*          plot.ts                plot.tskernel*        
[46] plot.TukeyHSD*         plot.Variogram*    

如果您想使用特定方法,可以使用 plot.* 显式调用它,例如plot.default.

R 是 多态的 。这意味着对于不同的 classes 对象,相同的函数可以导致不同的操作。您可以将 plot() 应用于许多不同类型的对象,您会为每个对象获得不同类型的图。我们可以这样说,例如,print()summary() 和许多其他。

多态性让事情更容易记住。如果一个函数对你来说是新的,只需在函数的输出上尝试 运行 plot();它可能会起作用。如果你是程序员,多态性允许编写相当通用的代码,而不用担心正在操作什么类型的对象,因为底层的 class 机制会处理这个问题。 使用多态性的函数,例如 plot()print(), 被称为 generic。当调用泛型函数时,R 将调用传递给相对 class 方法:它将调用重新路由到为特定对象的 class.

定义的函数