Bonjour,

Débutant en Python ici... J'ai un problème de correspondance entre mes xtick et mes xticklabels que j'illustre de façon simplifiée ci-dessous. J'utilise matplotlib et pandas.
ordinalTS est un objet pandas.core.series.Series qui contient des dates sous forme ordinale.
DataFrame est un objet pandas.core.frame.DataFrame

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
ax8 = plt.subplot(111)
    ax8.plot(ordinalTS,dataSelec.batt_volt_Max, color='k',linestyle='-',label='Max charge')
    ax8.plot(ordinalTS,dataSelec.batt_volt_Min, color='r',linestyle='-',label='Min charge')
    ax8.legend(fontsize=14)
    ax8.set_ylabel('Tension [V]',fontsize=14)
    ax8.set_xticklabels(dataSelec.TIMESTAMP.dt.strftime('%Y-%m-%d'),rotation=30,horizontalalignment='center')
    ax8.set_title('Batteries',fontsize=18)
Ma série ordinalTS correspond à ma série dataSelec
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
ordinalTS
Out[95]: 
23    737241
24    737242
25    737243
26    737244
27    737245
28    737246
29    737247
30    737248
31    737249
32    737250
33    737251
34    737252
35    737253
36    737254
37    737255
Name: TIMESTAMP, dtype: int64
 
dataSelec.TIMESTAMP.dt.strftime('%Y-%m-%d')
Out[96]: 
23    2019-07-01
24    2019-07-02
25    2019-07-03
26    2019-07-04
27    2019-07-05
28    2019-07-06
29    2019-07-07
30    2019-07-08
31    2019-07-09
32    2019-07-10
33    2019-07-11
34    2019-07-12
35    2019-07-13
36    2019-07-14
37    2019-07-15
Name: TIMESTAMP, dtype: object
Tout est beau, sauf que, lorsque j'assigne les xticklabels, la correspondance est perdue. Les xtick sont assigné un jour sur deux, mais les xticklabel chaque jour. Donc les xticklabel ne vont que jusqu'à la moitié de la série et on a l'impression que le graphique ne couvre que la moitié de la période.

Merci !

Nom : xtick_vs_xticklabel.jpg
Affichages : 356
Taille : 65,5 Ko