CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python graphique besoin d'aide

tytlox
tytlox
Niveau 4
01 avril 2020 à 13:19:17

Hello, je suis en train d'utiliser la bibli matplotlib pour faire un graph à partir d'un fichier CSV mais le problème est qu'il y a plusieurs centaines de données à rentrer, et mes abscisses sont des heures, du coup toutes les heures se superposent et la "légende" de mes abscisses ne ressemble plus qu'à un gros trait noir. J'aimerais n'afficher que 3 ou 4 horaires pour éviter ça mais je ne trouve pas comment faire :snif2:
voilà mon code:


import csv
import matplotlib.pyplot as plt

file = open("2019-12-31_sds011_sensor_20794.csv", "r", encoding="utf-8")

donneesCSV = []
donneesParticulesPM10 = []
donneesTemps = []

reader = csv.DictReader(file, delimiter=";")

for ligneR in reader:
    dic = dict(ligneR)
    donneesCSV.append(dic)
    
file.close()

for ligneCSV in donneesCSV:
    donneesParticulesPM10.append(float(ligneCSV["P1"]))
    donneesTemps.append(ligneCSV["timestamp"])

for ligneDT in donneesTemps:
    heure = ligneDT.split("T")
    position = donneesTemps.index(ligneDT)
    donneesTemps[position] = heure[-1]

    
plt.figure()
plt.title("Taux de particules PM10 dans la journée du 31/12/2019")
plt.plot(donneesTemps, donneesParticulesPM10)
plt.xlabel("Heure")
plt.ylabel("Taux de particules (en %)")
plt.axis([donneesTemps[0], donneesTemps[-1], min(donneesParticulesPM10)-5, max(donneesParticulesPM10)+5])
plt.savefig("graphique_PM10.png")
plt.show()

ça donne ça:
https://image.noelshack.com/fichiers/2020/14/3/1585739599-graphique-pm10.png

J'ai essayé de rajouter
plt.locator_params(axis='x', nbins=3)
comme je l'ai vu sur un forum mais ça ne marche pas, ça affiche ça:
UserWarning: 'set_params()' not defined for locator of type <class 'matplotlib.category.StrCategoryLocator'>
plt.axis([donneesTemps[0], donneesTemps[-1], min(donneesParticulesPM10)-5, max(donneesParticulesPM10)+5])

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment