Problème d'affichage dans python (format spécifique)
Maissa
-
16 avril 2024 à 18:44
Whismeril
Messages postés19034Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 2 mai 2024
-
17 avril 2024 à 07:10
Bonjour,
SVP, j'ai une table de données que je dois l'afficher dans un format spécifique pour mon projet, mais je ne trouve pas ni la bonne solution ni l'affichage comme je veux. Aidez-moi svp.
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
def display_data(data):
# Créer une figure et un axe
fig, ax = plt.subplots(figsize=(12, 8))
# Définir les dimensions des rectangles
rect_y = 0.2 # Position y des rectangles
rect_height = 0.6 # Hauteur des rectangles
first_rect_width = 0.2 # Largeur du premier rectangle (plus large)
other_rect_width = 0.1 # Largeur des autres rectangles
# Créer les rectangles noirs et les ajouter à l'axe
for i in range(7):
# Calculer la position x de chaque rectangle
current_rect_x = 0.1 + i * other_rect_width
# Déterminer la largeur à utiliser
rect_width = first_rect_width if i == 0 else other_rect_width
# Créer le rectangle
rect = Rectangle((current_rect_x, rect_y), rect_width, rect_height, edgecolor='black', facecolor='none', linewidth=2)
ax.add_patch(rect)
# Ajouter les données au premier rectangle
if i == 0:
# Ajouter la date en haut à gauche
ax.text(current_rect_x + 0.02, rect_y + rect_height - 0.02, f"{data['date']}", fontsize=10, va='top', ha='left')
# Ajouter le type de turbulence en haut à droite
ax.text(current_rect_x + rect_width - 0.02, rect_y + rect_height - 0.02, f"{data['type_turbulence']}", fontsize=10, va='top', ha='right')
# Ajouter l'aéronef en gras, centré
ax.text(current_rect_x + rect_width / 2, rect_y + rect_height - 0.08, f"{data['aeronef']}", fontsize=10, va='top', ha='center', fontweight='bold')
# Ajouter la vitesse à droite, sous l'aéronef
ax.text(current_rect_x + rect_width - 0.02, rect_y + rect_height - 0.14, f"{data['vitesse']}", fontsize=10, va='top', ha='right')
# Ajouter le départ, l'heure et la destination sous la vitesse
ax.text(current_rect_x + 0.02, rect_y + rect_height - 0.2, f"{data['depart']} à {data['heure']} {data['destination']}", fontsize=10, va='top', ha='left')
# Ajouter les données dans les autres rectangles
elif i == 1:
ax.text(current_rect_x + 0.02, rect_y + rect_height - 0.2, f"{data['niveau']}", fontsize=10, va='top', ha='left', wrap=True)
elif i == 5:
ax.text(current_rect_x + 0.02, rect_y + rect_height - 0.2, f"{data['information']}", fontsize=10, va='top', ha='left', wrap=True)
# Définir les limites du graphique
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
# Masquer les axes pour un affichage plus propre
ax.axis('off')
# Afficher le graphique
plt.show()
# Exemple d'utilisation:
data = {
'date': '01/02/2024',
'aeronef': 'AFA22',
'type_turbulence': 'AT3/L',
'vitesse': 'N0100',
'depart': 'DTTA',
'heure': '0810',
'destination': 'DTTA',
'niveau': 'A015',
'information': 'DOF/240202 REG/TSAFH OPR/AFA SRM/1110'
}
display_data(data)