Esto no parece ser documentado en la clusthr
página de manual, pero debido a que el código fuente está disponible, podemos tratar de averiguar.
Escribiendo
> clusthr
en la R
de símbolo de sistema (se muestra como la inicial >
), se puede ver el código. Es opaco, pero un rápido vistazo indica que (1) no hay ninguna trama o de selección de color pasando y (2) la agrupación se realiza con una llamada a una función C. No hay trazado debido a que este código sólo produce un objeto que va a ser trazados más tarde con plot
.
La versión de plot
es determinado por la clase del objeto devuelto por clusthr
: los médicos dicen que esta es una clase denominada "MCHu". Por lo tanto nos inspeccionar el código de su correspondiente trazado de la función escribiendo
> plot.MCHu
Aquí es una parte clave de la salida:
...
co <- grey(c(1:nrow(df))/nrow(df))
plot(x, col = co, ...)
...
Evidentemente, los colores se graduó de la oscuridad a la luz, incluso incrementos y asignados a los polígonos en el orden en que se encuentran en la MCHu
objeto. En este punto podemos hacer algo de ingeniería inversa mediante la generación de un objeto utilizando el ejemplo de la clusthr
página de manual:
> data(puechabonsp)
> lo<-puechabonsp$relocs[,1]
> res <- clusthr(lo)
Una solicitud str(res)
a inspeccionar la estructura de res
se encontró con una enorme cantidad de resultados, que por lo tanto es casi inútil, pero es evidente que esto es una lista, así que vamos a intentar inspeccionar la estructura de su primer elemento:
> str(res[[1]])
Esta vez el resultado es manejable (aunque siendo ridículamente largo de una pequeña cantidad de información). Comienza
Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
..@ data :'data.frame': 22 obs. of 2 variables:
.. ..$ percent: num [1:22] 10 13.3 23.3 26.7 36.7 ...
.. ..$ area : num [1:22] 0.0179 0.0457 0.0664 0.0947 0.2717 ...
..@ polygons :List of 22
OK, los polígonos son lo que nos interesa, así que vamos a inspeccionar su estructura, pero esta vez vamos a ser un poco cauteloso. Ya que son una lista, vamos a inspeccionar sólo la primera:
> res[[1]]@polygons[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 698994.7 3161001.7
Slot "area":
[1] 179
...
OK--en la area
de la ranura hay algo interesante relacionado con la hipótesis de que el sombreado corresponde al polígono tamaño. (En realidad, hay dos area
ranuras en este objeto: probablemente alguien extendido una clase que incluye un area
de la ranura, pero que, inadvertidamente, se añadió otro; sólo uno de ellos será accesible a través de la @area
construir.) Vamos a imprimir esas áreas, con el fin de:
> sapply(1:length(res[[1]]@polygons), function(i) res[[1]]@polygons[[i]]@area)
[1] 179.0 456.5 663.5 947.0 2717.0 7928.5 9761.5 12790.5
[9] 14839.0 16404.0 18100.0 18325.0 23731.5 37658.5 58793.0 70735.5
[17] 82063.0 105812.5 182443.0 226467.0 252571.5 405963.5
Los polígonos parecen ser ordenados por el aumento de área. Esto es cierto para los otros tres componentes de la res
(como podemos encontrar por repetir el comando anterior, reemplazando res[[1]]
por res[[2]]
, etc.) Asumiendo que esto es siempre el caso de que clusthr
órdenes de los polígonos mediante el aumento de área, podemos tentativamente a la conclusión de que la ligereza corresponde a los rangos de las áreas del polígono, con el más ligero de los polígonos con mayor área.