camemberts multiples

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Patricia OBEID
Messages : 68
Enregistré le : 10 Avr 2017, 19:03

camemberts multiples

Messagepar Patricia OBEID » 17 Juin 2017, 10:28

Bonjour à tous,
j'ai un data frame du style
classe1 classe2 classe3
cond1
cond2
cond3

et je souhaite obtenir les camemberts de répartition selon les classes 1, 2 et 3 pour chaque condition (cond 1 à n).
Pouvez vous m'aider quant à l'écriture de la ligne de code pour arriver à ce que je veux ?
Merci beaucoup et bonne journée à tous
Patricia

Patricia OBEID
Messages : 68
Enregistré le : 10 Avr 2017, 19:03

Re: camemberts multiples

Messagepar Patricia OBEID » 17 Juin 2017, 18:05

Re -bonjour,
même question pour obtenir un barplot empilé qui est probablement une meilleure représentation ...
Merci et bonne soirée
Patricia

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: camemberts multiples

Messagepar Logez Maxime » 19 Juin 2017, 08:58

Bonjour,

Je ne répondrai pas sur la partie pratique du code mais sur le type de graphs en eux même. Les camemberts et graphs empilé font partis des graphiques qui sont les plus décriés. Le camembert parce que l’œil humain à de grandes difficultés à comparer des surfaces ce qui fait qu'il est nécessaire la plupart du temps de rajouter les pourcentages associés à chaque part. Par conséquent le graph en lui même n'est pas assez explicite pour représenter une information qu'il convient de rajouter au graph ... Pour ce qui est des barres empilés c'est un peu le même souci avec la difficulté de comparer des barres qui ne sont pas toujours au même endroit.

Cordialement,
Maxime

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: camemberts multiples

Messagepar Gabriel Terraz » 19 Juin 2017, 09:48

Salut,

Je rejoins le commentaire de Maxime, mais s'il y a seulement trois catégories à représenter cela ne me semble pas non plus une hérésie.

Voici pour les camemberts :

data bidon :

Code : Tout sélectionner

df <- data.frame(cl1 = sample(50,3), cl2 = sample(50,3) , cl3 = sample(50,3))
rownames(df) <- paste0("cond",1:3)
df
      cl1 cl2 cl3
cond1   5  38  21
cond2  42  41  12
cond3  43  49  40


Code : Tout sélectionner

par(mfrow = c(2,2)) ## Pour représenter plusieurs graph
sapply(rownames(df), function(x) pie(as.numeric(df[x,]), labels = names(df), init = 90, main = x))



Edit pour les barres :

Code : Tout sélectionner

sapply(rownames(df), function(x) barplot(matrix(df[x,]), main = x))

Patricia OBEID
Messages : 68
Enregistré le : 10 Avr 2017, 19:03

Re: camemberts multiples

Messagepar Patricia OBEID » 19 Juin 2017, 15:41

Bonjour et merci à tous les deux.
Je suis consciente de vos remarques quant à la lisibilité de tels graphiques mais parfois on ne peut pas faire autrement ... :-)

Gabriel, j'ai essayé de faire tourner ton code mais c'est moi qui tourne en rond !!
J'ai un message d'erreur et je ne sais pas comment m'en sortir

Error in pie(as.numeric(plateAgg2[x, ]), labels = names(plateAgg2), init = 90, :
'x' values must be positive. In addition: Warning message:
In pie(as.numeric(plateAgg2[x, ]), labels = names(plateAgg2), init = 90, :
NAs introduced by coercion

Voici mon dataframe :
dput(plateAgg2)
structure(c("AS", "18", "6.0", "88", "2.3", "Opti", "17", "5.3",
"77", "8.0", "P63", "20", "8.0", "87", "2.7", "PTEN", "27", "6.0",
"81", "3.7", "R1-9", "26", "8.0", "77", "1.3", "RiscFree", "23",
"3.3", "78", "3.0"), .Dim = 5:6, .Dimnames = list(c("cond", "Acini",
"Intermediaire", "Spheroide", "invasif"), NULL))

Merci de votre aide.
Cordialement,
Patricia

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: camemberts multiples

Messagepar Gabriel Terraz » 19 Juin 2017, 17:40

Resalut,

Donner un extrait a du bon, on remarque tout de suite qu'il y a un souci. La première ligne de ta matrice est en fait les en-têtes de tes colonnes. Tu as du oublier l'argument header = TRUE lors de l'import de tes données avec read.table. Mais ce qui me paraît étrange est que tu as une matrice et non un dataframe. Quelles manips as tu effectuées en amont ?

Patricia OBEID
Messages : 68
Enregistré le : 10 Avr 2017, 19:03

Re: camemberts multiples

Messagepar Patricia OBEID » 19 Juin 2017, 19:08

Bonsoir
au départ j'ai un tableau .csv
plate <- read.csv2("170613_Comptages.csv",header=T, stringsAsFactors = F, sep=',')

en suite j'ai appliqué aggregate pour avoir la moyenne par condition.
plateAgg <- aggregate(plate[2:5],plate["cond"], function(x) {signif(mean(x),2)})

Pour obtenir mon plateAgg2 j'ai fait : plateAgg2 <- t(plateAgg)

Ça te parle ?
Encore merci de ton aide
Patricia

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: camemberts multiples

Messagepar Gabriel Terraz » 19 Juin 2017, 21:35

Je pense que le problème provient de la transposition qui crée une matrice. Vérifie que dans l'objet plateAgg tu n'as pas une colonne qui s'appelle "cond". Comme celle-ci contient des donnée non numériques, cela transforme toutes tes données en chaine de caractères...
Essaie de retirer cette colonne avant de transposer, puis tu t'en sers pour créer tes nouveaux noms de colonnes.

Bien sûr tout ceci est au conditionnel, je ne sais pas à quoi ressemble les objets plate et plateAgg

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: camemberts multiples

Messagepar François Bonnot » 20 Juin 2017, 07:11

Bonjour,
Je ne résiste pas à rappeler ce lien (déjà mentionné sur ce forum) :
http://pbil.univ-lyon1.fr/members/lobry/tmp/diaposcam.pdf
François

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: camemberts multiples

Messagepar Logez Maxime » 20 Juin 2017, 08:21

Bonjour,

pourquoi pas des représentations du style dotchart par exemple ? Si le format du graph t'est imposé, tu pourras dire aux personnes qui te l'impose que tout les bouquins parlant de représentation graphique bannissent le camembert et autre graph empilé.

Cordialement,
Maxime

Alexandre Dangléant
Messages : 270
Enregistré le : 30 Mar 2010, 14:38

Re: camemberts multiples

Messagepar Alexandre Dangléant » 20 Juin 2017, 14:21

Dans ces cas-là, je plaide l'incompétence :-)

Bon, ça passe mieux pour les radars chart (ou "spiders") parce que ça parait "hyper-compliqué".

Misère...



Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité