[英]How to tell R how to plot objects of a certain class?
我目前正在處理一些對象,這些對象是代表統計模型的屬性列表。 例如,假設我有一個矩陣,一個數值向量和一個整數。
myobj = list(amatrix = matrix(1:9,3,3),avector = c(1:3),aninteger = 1)
class(myobj) = 'myclass'
假設由於某種原因,我可以創建一個表示此類對象的圖。 如何使plot(myobj)
識別出對象具有類'myclass'
,並以所需的方式打印它,例如image(myobj$amatrix)
?
我認為問題本質上是如何“修改” R的繪圖函數,以便它知道如何處理新定義的對象類? 執行此修改時,可以使用ggplot等其他軟件包的功能嗎?
從更一般的意義上講,處理不同類對象的函數如何知道如何為每個類起作用?
我幾乎沒有使用R中的類的經驗,因此,即使是一些有關類的簡單指南也應有所幫助。
如@emilliman所述,您可以定義自己的方法:
myobj = list(amatrix = matrix(1:9,3,3),avector = c(1:3),aninteger = 1)
class(myobj) <- 'myclass'
plot.myclass <- function(x) image(x$amatrix)
methods(plot) # check the 4th element of 3rd line :) (list will differ depending on what packages are loaded)
# [1] plot.acf* plot.data.frame* plot.decomposed.ts* plot.default plot.dendrogram* plot.density* plot.ecdf
# [8] plot.factor* plot.formula* plot.function plot.hclust* plot.histogram* plot.HoltWinters* plot.isoreg*
# [15] plot.lm* plot.medpolish* plot.mlm* plot.myclass plot.ppr* plot.prcomp* plot.princomp*
# [22] plot.profile.nls* plot.R6* plot.raster* plot.spec* plot.stepfun plot.stl* plot.table*
# [29] plot.ts plot.tskernel* plot.TukeyHSD*
#and plot :
plot(myobj)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.