簡體   English   中英

如何告訴R如何繪制特定類的對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM