2 pièce(s) jointe(s)
Tracé avec datetime - supprimer les 'blancs'
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 :
Pièce jointe 597328
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:
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 :
Pièce jointe 597327
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 :
Code:
1 2
|
plt.locator_params(axis='x', nbins=50) |
Merci pour votre aide!