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
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()
Voici le plot :
Nom : Capture.JPG
Affichages : 2383
Taille : 27,9 Ko

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.
Nom : ui_res.JPG
Affichages : 2118
Taille : 31,9 Ko
6) Comment faire pour le placer dans cette fenetre simplement ?


Merci d'avance pour tous vos conseils .
Aurélie