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
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 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)
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.
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
Merci !
Partager