heatmap avec les valeurs (ggplot2)
J'ai vu des cartes de chaleur avec des valeurs exprimées dans les diverses R graphiques, y compris les systèmes de treillis et de base comme ceci:
J'ai tendance à utiliser ggplot2
un peu et que vous souhaitez être en mesure de faire une heatmap avec la cellule correspondante valeurs tracées. Voici la carte de la chaleur et une tentative à l'aide de 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)
Normalement je peux comprendre les valeurs x et y passer mais je ne sais pas dans ce cas puisque cette information n'est pas stockée dans l'ensemble de données. Comment puis-je placer le texte sur la heatmap?
- this question a un exemple d'utilisation de texte avec geom_tile qui peuvent être utiles. Déplacez votre aes() appel de geom_tile à geom_text
- essayez
heatmap.2
. reportez-vous à la poste similaire stackoverflow.com/questions/3789549/... - a parfaitement fonctionné. Je vous remercie.
- A juste sauté dans le bus, ne pouvait pas fournir une réponse adéquate, mais heureux de voir que vous avez été capable de faire un tri.
- Cela vous aide? socialdatablog.com/heatmap-tables-with-ggplot2-sort-of
- Merci pour le lien.
- Il me semble que heatmap.2 est plus puissante option pour créer des cartes de chaleur que ggplot2, seriez-vous d'accord avec cela? J'ai lu que "Il n'y a pas heatmap de tracé de la fonction de ggplot2" sur la SOURCE: learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting
Vous devez vous connecter pour publier un commentaire.
Ce qui a été mis à jour pour se conformer à tidyverse principes et d'améliorer la mauvaise utilisation de ggplot2
Par SlowLeraner le commentaire que j'ai été capable de le faire:
Ignoring unknown aesthetics: fill
. Un peu de bricolage a montré que l'avant-dernière ligne n'a pas besoin d'une valeur de remplissage. Donc, cela produit le même résultat pour moi, sans aucun avertissement:geom_text(label = round(dat2$value, 1)))
geom_text
aprèsgeom_tile
sinon, vous n'obtenez pas de label et se demandent pourquoi.dat
dataframe que vous avez créé. Comment pouvez-vous faire pour regarder exactement comme ça. Je pensais que c'est ce que l'OP a été demandé, et ce que j'ai pensé que je pourrais trouver ici. Merci 🙂