Bonjour à tous,
J'aimerais pouvoir afficher des statistiques concernant des sufaces de terrains et module pylab me parrait plutôt bien cependant j'ai plusieurs questions assez générales concernant l'utilisation de la méthode de pylab : pie().
Le principe :
a) Je récupère une liste de nom de surface. Le nombre de surface est variable
surf =['s1',s2',...'sn'], la longueur de la liste est n
b) Je récupère l'aire de ces surfaces
air = [4,12e-5, 5,02e-2,... 3,52e-4], la longueur de la liste est n
c) Je souhaite afficher un diagramme avec le nom de la surface, sont air en m" et le pourcentage qu'elle représente
Mes questions sur pie():
1)Comment créér une liste de couleurs àléatorie de longeur n ?
2)Comment afficher l'air total en plus du nom de ma surface ?
3)Comment faire ressortir du diagramme la surface ayant le plus grand pourcentage ?
Ce que j'ai déjà testé :
J'ai commencé par quelque chose de très simple, mais le résultat n'est pas concluant
Voici le plot :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 from pylab import * import matplotlib.pyplot as plt from matplotlib import cm #Exemple Liste retourne lar le plugin surf = [[u'312', u'(rcl 3.5) 312 - Coniferous forest'], [u'231', u'(rcl 1.0) 231 - Pastures'], [u'324', u'(rcl 2.0) 324 - Transitional woodland-shrub'], [u'412', u'(rcl 1.5) 412 - Peat bogs']] surface=[] #Recuperation des nom des surface for i in range(len(surf)) : surface.append(surf[i][1]) #Exemple Liste des airs recupere par le plugin area = [5.778573217306391e-06, 3.079483481707867e-05, 3.1286893007986946e-05, 4.127670277163082e-05] area2 =[] for i in area : area2.append(i*1000) #Exemple couleurs col = ['b', 'r', 'g','y'] #Creation du diagramme et plot utopct='%1.1f%%' plt.pie(area2, labels=surface, colors =col ,autopct='%1.1f%%', startangle=90,shadow=False) #diagramme avec un quotient multiplicateur plt.pie(area, labels=surface, colors =col ,autopct='%1.1f%%', startangle=90,shadow=False) # Diagramme original plt.axis('equal') show()
J'ai donc deux diagramme qui devrait s'affciher mais aucun ne s'affiche comme je l'aurait souhaité
5) Pourquoi n'ai-je pas un diagramme avec une comme des parts égale à 100% ?
Mes questions sur l'affichage du diagramme :
Je souhaite afficher le diagramme comme une image dans une fenêtre de dialogue PyQt. La fenêtre resemble à la boite de dialogue ci dessous. Je souhaite le placer le diagramme dans le cadre détails qui est juste pour le moment un espace vide.
6) Comment faire pour le placer dans cette fenetre simplement ?
Merci d'avance pour tous vos conseils .
Aurélie
Partager