IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

Graphe associant un profil d'élévation et les pourcentages de pentes [Python 3.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Points : 30
    Points
    30
    Par défaut Graphe associant un profil d'élévation et les pourcentages de pentes
    Bonsoir,

    Depuis une trace GPX je sors dans une DataFrame la distance cumulée tous les 500 m et le pourcentage de pente.
    Je voudrais obtenir un graph combinant le profil et les différents pourcentage calculés tous les 500 m( voir un exemple en pièce joint).
    J'ai cherché sur matplotlib, seaborn mais je bloque.
    Si un Dieu avait une solution ou une piste

    Le fichier CSV j'ai fait une impression ecran pour mettre à dispo
    La partie du fichier py pour créer les graphs

    Developper.pyGraphe_1204_0.ds$.pdfNom : ProfilCSV.png
Affichages : 131
Taille : 434,8 Ko

    Merci pour l'attention que vous voudrez bien i accorder.

    DM

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Points : 30
    Points
    30
    Par défaut
    J'ai trouvé une solution.
    C'est pas très orthodoxe mais çela fonctionne.
    je vous la soumets ci dessous
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import pandas as pd
    import matplotlib.pyplot as plt
    from choix_et_lecture_fichier import *
    
    # Choix du fichier à ouvrir
    fi = choixDuFichier()           # Fichier pourcentageRestonica.csv
    
    pourcentage= pd.read_csv(fi)   # Création de la DataFrame
    lignes = len(pourcentage)         # nombres de lignes de la dataframe
    
    #### Définition du premier polygone
    
    x0 = 0
    y0 = 0
    x1 = pourcentage.iloc[1, 4]      
    y1 = pourcentage.iloc[0, 3]
    y2 = pourcentage.iloc[1, 3]
    A = [x0, x0, x1, x1, x0]
    B = [y0, y1, y2, y0, y0]
    
    z = pourcentage.iloc[1, 5]     # Défini le pourcentage sur 500 m
    
    
    fig=plt.figure(figsize=(15, 8))
    
    #### itération sur la DataFrame pour créer tous les polygones
    
    for i in range(0, (lignes-1)) :
    
           xi = pourcentage.iloc[i, 4]
           x2 = pourcentage.iloc[(i+1), 4]
           yi = pourcentage.iloc[i, 3]
           y2 = pourcentage.iloc[(i+1), 3]
           z = pourcentage.iloc[(i+1), 5]
           A = [xi, xi, x2, x2, xi]
           B = [y0, yi, y2, y0, y0]
    
       # Définition de la couleur du pourcentage
    
          u = ''
          if z <= 5:
               u = ('green')
          elif z <= 8:
               u = 'blue'
          elif z <= 10:
              u = 'red'
          elif z <= 15:
              u = 'black'
          elif z > 15:
              u = 'sienna'
    
          plt.title("PROFIL DE LA MONTEE DE LA RESTONICA")        # titre du Graphe
          labels = str(round(z, 2))                                                # Arrondie du pourcentage
          ax=plt.fill(A, B, facecolor= u, edgecolor='black')              #  Remplissage du polygone
    
          plt.text(xi+125, y1/2, labels + '%', rotation=90, va='center', color='white')  # position du pourcentage à l'intérieur du polygone
    
          distance = pourcentage['Distance']        # Définition du label de l'axe X
          elevation = pourcentage['ele']               # Définition du label de l'axe Y
        
          x = distance
          y = elevation
        
          plt.plot(x, y, color='red', linestyle='solid', label='Profil Restonica')       # Traçage du profil général
          plt.xlabel('Distance')
          plt.xticks(rotation=45)
          plt.ylabel('elevation')
    
    plt.show()
    plt.close()

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Points : 30
    Points
    30
    Par défaut Solution complète avec traitement GPX
    Salute,

    Si cela intéresse quelqu'un j'ai réussi à faire un truc pas trop mal à partir d'un fichier GPX
    J'explique :

    Le fichier GPX je le convertis en CSV.
    Le fichier CSV n'ayant pas les distances entre chaque point je calcule cette distance, puis la distance cumulée de point à point.
    Je demande l'interval de calcul du pourcentage et je calcule le pourcentage pour chaque intervalle.
    Ensuite je crée un polygone pour chaque intervalle dans lequel je mets son pourcentage
    Puis je crée le profil général
    Et pour terminer j'assemble le tout.
    Et cela donne cela

    Nom : Grotelle_500m.png
Affichages : 81
Taille : 51,4 Ko

    Si cela vous intéresse contactez-moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/07/2011, 17h12
  2. Réponses: 0
    Dernier message: 29/09/2010, 23h33
  3. Réponses: 9
    Dernier message: 31/03/2009, 22h45
  4. [MySQL] produit soit associé soit à un, plusieurs ou tous les modèles de voiture
    Par xaviernobi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/11/2008, 21h28
  5. Réponses: 1
    Dernier message: 28/03/2008, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo