L'incontournable langage "R" permet ça. Phython propose aussi des bibliothèques bien équipées.
On peut proposer une façon très simple (qui permettra de dessiner automatiquement à partir de fichiers csv de données):
Stockez vos données à traiter sous forme d'un fichier csv. L'en-tête en première ligne puis les données ligne à ligne.
Vous pouvez faire ça avec un éditeur de texte ou un tableur. Vos données seront réutilisables à
loisir. Exemple :
mon_en-tête
1,5
4
7,2
9
5,9
8,2
Sauvez le fichier là où ça vous va bien avec le nom qui vous convient. Faîtes une copie appelée data1col.csv. Ce sera le fichier utilisé par le script.
Voici le texte du fichier "boxplot-1col.R". Le # permet d'écrire les lignes de commentaires. Lisez bien les commentaires ! Ce serait ballot que cela ne fonctionne pas pour des histoires de . ou de , comme séparateur des décimales ... ou de chemin de fichier non trouvé.
#lire un fichier csv 1 colonne en respectant les headers et decimales à "," .
#Ci-dessous "le_chemin/data1col.csv" signifie que vous devez indiquer le chemin vers le fichier csv de données.
#A vous de jouer (par exemple "./Rdata/data1col.csv").
#Attention, R utilise le / comme séparateur dans les chemins, pas le \
#la commande getwd() vous donne le répertoire de travail en cours, ça peut servir ...
#création de la variable data1col. data1col sera un type "data frame" mais ici avec 1 seule colonne (1 seul vecteur).
#DANGER Mettre . à la place de , à dec="," si votre séparateur décimal est le "."
data1col=read.table(file="le_chemin/data1col.csv",sep=";",dec=",",h=TRUE)
#pour afficher les données
print(data1col)
#Pour voir les statistiques des données : médiane,, moyenne ....
summary(data1col)
#Tracé de la boite à moustache
#boxplot(data1col)
#et les options ... col="" pour remplir en couleurs. Les codages sont RGB .
#xlab="" pour le nom de l'axe, par exemple en appelant le nom du header du fichier data1col.csv
boxplot(data1col, xlab=names(data1col), col="#99CCCC")
# Rajouter les points à la boîte à moustache avec du "jitter" (un peu de gigue)
# add=TRUE est important dans stripcart() si on veut superposer ce graphe au graphe précédent
stripchart(data1col, vertical=TRUE, pch=19, method="jitter",add=TRUE)
On peut proposer une façon très simple (qui permettra de dessiner automatiquement à partir de fichiers csv de données):
Très simple et pratique : stockez vos données à traiter sous forme d'un fichier csv. L'en-tête en première ligne puis les données ligne à ligne.
Utilisez le ; comme séparateur de champ. Vous pouvez faire ça avec un éditeur de texte ou un tableur. Vos données seront réutilisables à
loisir. L'allure (cas à 2 colonnes) sera du genre :
EchT;EchE
1,5;4
4;9
5,2;6
Sauvez le fichier là où ça vous va bien avec le nom qui vous convient. Faîtes une copie appelée data2col.csv.
Ce sera le fichier utilisé par le script.
Voici le texte du fichier "boxplot-2col.R". Le # permet d'écrire les lignes de commentaires. Lisez bien les commentaires ! Ce serait ballot que cela ne fonctionne pas pour des histoires de . ou de , comme séparateur des décimales ... ou de chemin de fichier non trouvé
#lire un fichier csv 2 colonnes en respectant les headers et decimales à "," .
#VOIR AUSSI LES COMMENTAIRES DU SCRIPT PRECEDENT
data2col=read.table(file="le_chemin/data2col.csv",sep=";",dec=",",h=TRUE)
#pour afficher les données
print(data2col)
#Pour voir les statistiques des données : médiane,, moyenne ....
summary(data2col)
#Tracé de la boite à moustaches, avec un vecteur de couleurs double pour 2 couleurs
boxplot(data2col, col=c("#99CCCC","#CCCCFF"), main="Diagrammes de distribution")
stripchart(data2col, method="jitter", pch=19, add=TRUE, vertical=TRUE )
A la suite du script précédent ! Rajoutez :
#On va créer 2 vecteurs génériques à partir du tableau de données
v1 <- data2col[,1]
v2 <- data2col[,2]
#Test de distribution normale (ou pas) de Shapiro-Wilk (faudrait une bonne p-value pour croire vraiment à une hypothétique la normalité !)
#qqplot()est possible et élégant
shapiro.test(v1)
shapiro.test(v2)
#Par défaut la fonction wilcox.test() qui est très très sophistiquée renvoie un test Mann Whitney bilatéral
#?wilcox.test() rassemble Mann-W pour ech indépendants et Wilcoxon pour ech appariés ... voir le help...
wilcox.test(v1,v2)
A faire.