Comment puis-je générer un histogramme pour chaque colonne de mon tableau?
J'ai un tableau de données avec une colonne représentant un laboratoire de la valeur pour chaque sujet de l'étude (lignes).
Je veux générer une série d'histogrammes montrant la distribution des valeurs pour chaque test de laboratoire (c'est à dire la colonne). Chaque ensemble de valeurs de laboratoire idéal serait d'avoir un autre bin largeur (certains sont des entiers avec des centaines, certains sont numériques avec une gamme de 2 ou 3).
Comment dois-je faire?
OriginalL'auteur veldhoen | 2016-02-12
Vous devez vous connecter pour publier un commentaire.
Si vous combinez les
tidyr
etggplot2
paquets, vous pouvez utiliserfacet_wrap
de faire un petit ensemble d'histogrammes de chaque variable dans vos données.cadre.Vous avez besoin de remodeler vos données de forme longue avec
tidyr::gather
, de sorte que vous avezkey
etvalue
colonnes comme tel:À l'aide de ce que nos données, nous pouvons cartographier
value
que notre variable x, et l'utilisationfacet_wrap
de séparer par lakey
colonne:La
scales = 'free_x'
est nécessaire, à moins que vos données sont tout de même échelle.Vous pouvez remplacer
bins = 10
avec quelque chose qui donne un nombre, qui peut vous permettre de définir un peu individuellement avec un peu de créativité. Alternativement, vous pouvez définirbinwidth
, qui peut être plus pratique, en fonction de ce que vos données ressemble. Peu importe, binning va prendre une certaine finesse.J'apprécie vraiment l'aide, j'ai été vraiment l'incompréhension comment le facettage travaillé. Je vais travailler avec le bitwidths l'article que vous avez posté, car elles sont très différentes entre les valeurs. Je vous remercie beaucoup.
OriginalL'auteur alistaire
Vous pourriez générer des parcelles dans une boucle for avec quelque chose comme cela, si votre bloc de données est nommé "df" et vous voulez générer des histogrammes en commençant par la colonne 2 (si la colonne 1 est votre id):
L'hist fonction calcule automatiquement raisonnable bin largeur, ou vous pouvez spécifier un nombre fixe de cycles pour tous les histogrammes, en ajoutant les pauses argument:
Si vous utilisez RStudio, l'ensemble de vos parcelles seront automatiquement enregistrées dans les parcelles volet. Si non, vous aurez besoin d'enregistrer chaque parcelle dans un fichier séparé à l'intérieur de la boucle, comme expliqué ici: http://www.r-bloggers.com/automatically-save-your-plots-to-a-folder/
Vous pouvez ajouter
par(mfrow = c(x, y))
pour les afficher dans une parcelle. Ou peut-être rendre le code d'attendre quelque sorte, de sorte que l'utilisateur a le temps de regarder la parcelle et de passer à la suivante. Ou peut-être ajouter un minuteur de veille pour afficher chaque image pour un moment prédéfini. Ou, il suffit d'utiliser quelque chose de semblable à ce que @alistaire fait. 🙂Je vous suggère d'ajouter
main = names(df[col])
comme un argument supplémentaire à la fonction hist. Il va étiquette de chaque histogramme avec le nom de la colonne en question.OriginalL'auteur Katia
Je viens de tomber sur le multi.hist() fonction de la psy paquet . Il vous permet de tracer des histogrammes par des colonnes spécifiques et ressemble, vous pouvez définir différentes pauses pour chaque colonne.
OriginalL'auteur kitkat