Je connais plot_date()
mais y a-t-il une bar_date()
là-bas?
La méthode générale serait d'utiliser set_xticks
et set_xticklabels
, mais j'aimerais quelque chose qui puisse gérer des échelles de temps de quelques heures à quelques années (cela signifie impliquer les tiques majeures et mineures pour rendre les choses lisibles je pense).
Edit: J'ai réalisé que je trace des valeurs associées à un intervalle de temps spécifique (que la barre s'étend). J'ai mis à jour ci-dessous la solution de base que j'ai utilisée:
import matplotlib.pyplot as plt
import datetime
t=[datetime.datetime(2010, 12, 2, 22, 0),datetime.datetime(2010, 12, 2, 23, 0), datetime.datetime(2010, 12, 10, 0, 0),datetime.datetime(2010, 12, 10, 6, 0)]
y=[4,6,9,3]
interval=1.0/24.0 #1hr intervals, but maplotlib dates have base of 1 day
ax = plt.subplot(111)
ax.bar(t, y, width=interval)
ax.xaxis_date()
plt.show()
Tout ce que plot_date
fait est de tracer la fonction et l'appel ax.xaxis_date()
.
Tout ce que vous devez faire est le suivant:
import numpy as np
import matplotlib.pyplot as plt
import datetime
x = [datetime.datetime(2010, 12, 1, 10, 0),
datetime.datetime(2011, 1, 4, 9, 0),
datetime.datetime(2011, 5, 5, 9, 0)]
y = [4, 9, 2]
ax = plt.subplot(111)
ax.bar(x, y, width=10)
ax.xaxis_date()
plt.show()