mapas - Mostrar una matriz, incluyendo los valores, como un mapa de calor.
mapas de calor google maps (4)
Lo que me gustaría hacer es tomar esta matriz:
> partb
0.5 1.5 1a 1b -2 -3
A1FCLYRBAB430F 0.26 0.00 0.74 0.00 0.00 0.00
A1SO604B523Q68 0.67 0.33 0.00 0.00 0.00 0.00
A386SQL39RBV7G 0.00 0.33 0.33 0.33 0.00 0.00
A3GTXOXRSE74WD 0.41 0.00 0.08 0.03 0.05 0.44
A3OOD9IMOHPPFQ 0.00 0.00 0.33 0.00 0.33 0.33
A8AZ39QM2A9SO 0.13 0.54 0.18 0.13 0.00 0.03
Y luego haga un mapa de calor que tenga cada uno de los valores en las celdas ahora coloreadas.
Hacer un mapa de calor es fácil:
> heatmap( partb, Rowv=NA, Colv=NA, col = heat.colors(256), margins=c(5,10))
Pero por mi vida, no puedo averiguar cómo poner el valor en cada una de las celdas.
¿Qué me estoy perdiendo? Seguramente esto es algo común.
Intente heatmap.2
del paquete gplots
. Los parámetros cellnote y notecol controlan el texto colocado en las celdas. Probablemente querrá dendrogram = "none"
también.
Por ejemplo:
m <- matrix(1:30, ncol=6)
colnames(m) <- paste("C", 1:6, sep="")
rownames(m) <- paste("R", 1:5, sep="")
m
image(1:ncol(m), 1:nrow(m), t(m), col = terrain.colors(60), axes = FALSE)
axis(1, 1:ncol(m), colnames(m))
axis(2, 1:nrow(m), rownames(m))
for (x in 1:ncol(m))
for (y in 1:nrow(m))
text(x, y, m[y,x])
Puedes usar image
y text
. Personalmente, me gusta image.plot
del paquete de fields
, porque agrega una leyenda al lado, pero también puedes usarlo con la image
.
Así por ejemplo
require(fields)
# Make a 10x10 matrix
m = matrix(rnorm(100), nrow=10)
image.plot(m)
for (x in 1:10)
for (y in 1:10)
text((x-1)/9, (y-1)/9, sprintf("%0.2f", m[x,y]))
levelplot()
del paquete de lattice
le dará una leyenda de color. No es exactamente lo que quieres, sino algo en lo que pensar.