manipulation - mapas en r
mapa de calor con valores(ggplot2) (1)
Esto se ha actualizado para cumplir con los principios de tidyverse y mejorar el uso deficiente de ggplot2
Según el comentario de SlowLeraner, pude hacer esto fácilmente:
library(tidyverse)
## make data
dat <- matrix(rnorm(100, 3, 1), ncol=10)
## reshape data (tidy/tall form)
dat2 <- dat %>%
tbl_df() %>%
rownames_to_column(''Var1'') %>%
gather(Var2, value, -Var1) %>%
mutate(
Var1 = factor(Var1, levels=1:10),
Var2 = factor(gsub("V", "", Var2), levels=1:10)
)
## plot data
ggplot(dat2, aes(Var1, Var2)) +
geom_tile(aes(fill = value)) +
geom_text(aes(label = round(value, 1))) +
scale_fill_gradient(low = "white", high = "red")
He visto mapas de calor con valores realizados en varios sistemas de gráficos R, incluidos celosía y base como esta:
ggplot2
a usar ggplot2
un poco y me gustaría poder hacer un mapa de calor con los valores de celda correspondientes graficados. Aquí está el mapa de calor y un intento de usar geom_text
:
library(reshape2, ggplot2)
dat <- matrix(rnorm(100, 3, 1), ncol=10)
names(dat) <- paste("X", 1:10)
dat2 <- melt(dat, id.var = "X1")
p1 <- ggplot(dat2, aes(as.factor(Var1), Var2, group=Var2)) +
geom_tile(aes(fill = value)) +
scale_fill_gradient(low = "white", high = "red")
p1
#attempt
labs <- c(apply(round(dat[, -2], 1), 2, as.character))
p1 + geom_text(aes(label=labs), size=1)
Normalmente puedo calcular los valores x e y para pasar, pero no sé en este caso, ya que esta información no está almacenada en el conjunto de datos. ¿Cómo puedo colocar el texto en el mapa de calor?