# ========================================================================= # Exemple de construction de la représentation triangulaire de trois séries # de somme normalisée (parfois appelée "endowment triangle") # ========================================================================= # Le fichier "triangle.txt" contient des données fictives représentant # la ventilation en trois secteurs (alimentation, habillement et "autre") # du CA de six magasins; les données sont brutes, cad en niveau dans une # unité monétaire convenable, et sont donc d'abord converties en ratios. # Pour la commodité de la construction du graphique, on a ajouté trois # lignes ou magasins artificiels, n'ayant qu'un seul secteur et qui donneront # les sommets du triangle. maga = read.table("triangle.txt", h=T) # la colonne "Magasin" est # l'identifiant (entre guillemets dans le fichier triangle.txt) maga # pour voir attach(maga) # pour pouvoir appeler les variables par leur nom # normalisation par magasin total=Alim+Habi+Autre Alim=Alim/total Habi=Habi/total Autre=Autre/total # graphique xy "traditionnel", par exemple Alim x Habi plot(Alim, Habi, xlim=c(-0.1, 1.1), ylim=c(0, 1.1)) text(Alim, Habi, labels=Magasin, pos="3") # passage des coordonnées "barycentriques" dans le triangle équilatéral # "unitaire" Alimentation-Habillement-Autre de sommets (0,0), (1,0) et # (racine(3)/2,1) aux coordonnées "cartésiennes" selon les formules du cours x=(Habi+Autre/2) y=(Autre*(3^0.5)/2) # coordonnées des sommets pour le tracé du triangle, le premier répété # au bout pour refermer la ligne tx=c(0, 1, 0.5, 0) ty=c(0, 0, (3^0.5)/2, 0) # pour figurer également les médianes, on peut utiliser la séquence # suivante à la place de celle qui précède # k=(3^0.5)/2 # pour se simplifier la vie... # tx=c(0, 1, 0.5, 0, 0.75, 1, 0.25, 0.5, 0.5) # ty=c(0, 0, k, 0, k/2, 0, k/2, k, 0) # graphique triangulaire plot(x, y, main="Alimentation-Habillement-Autre", xlab="", ylab="", xlim=c(-0.1, 1.1), ylim=c(-0.025, 0.95)) text(x, y, labels=Magasin, pos="3") # intitulés dans le graphique, sommets compris points(tx, ty, type='l') # tracé du triangle