Bonjour,
Je recréé un sujet pour clarifier un peu le problème que j'ai, par rapport à un graphique que j'avais tracé en utilisant des données datetime :
Voici mon graphique, il représente des valeurs en fonction de la date :
Je cherche simplement à afficher dans mon graphiques, uniquement les valeurs qui existent, donc supprimer les écarts entre les valeurs et n'afficher que les dates que j'ai.
Voici mon code :
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 import matplotlib.pyplot as plt import numpy as np import glob from datetime import datetime from numpy import arange import matplotlib.dates as mdates tabTime = np.zeros(0) tabAlt = np.zeros(0) tabDiff= np.zeros(0) ext="Diff_*" for files in sorted(glob.glob(ext),reverse=False): print(files) filename=(files[5:12]) print(filename) data = np.loadtxt(files) alt = data[:,0] diff = data[:,1] NumberOfLine = len(alt) tabAlt = np.append(tabAlt,alt) tabDiff = np.append(tabDiff, diff) a = datetime.strptime(filename, "%y%m%d") for i in range(len(alt)): tabTime = np.append(tabTime,a) plt.scatter(tabTime, tabAlt, marker='.', c=tabDiff, cmap='RdBu') plt.xticks(rotation=45) plt.xlim(( datetime.strptime("2007-01-18", "%Y-%m-%d"), datetime.strptime("2020-01-30", "%Y-%m-%d"), )) plt.xlabel('Date') plt.ylabel('Altitude (km)') cbar = plt.colorbar() cbar.set_label('O3`AMA` - O3`Non AMA` (ppmv)') plt.show()
Si j'évite de passer par datetime, donc en affichant le 'temps' comme une chaîne de caractère, je me retrouve avec ça :
Donc je n'ai plus les écarts, mais toutes les valeurs sont affichés, je préférerai qu'il y ait uniquement les mois qui soient affichés.
Je précise que ce code ci ne fonctionne pas, il m'affiche bien moins de valeurs mais pas aux bonnes dates :
Merci pour votre aide!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 plt.locator_params(axis='x', nbins=50)
Partager