Comment tracer des données par rapport à des dates spécifiques sur l'axe des x en utilisant matplotlib

J'ai un jeu de données composé de la date de paires de valeurs. Je veux tracer dans un graphique à barres avec les dates précises de l'axe des abscisses.

Mon problème est que matplotlib distribue le xticks sur l'ensemble de la plage de dates; et aussi des parcelles données à l'aide de points.

Les dates sont toutes datetime objets. Voici un échantillon de la base de données:

data = [(DT.datetime.strptime('2010-02-05', "%Y-%m-%d"), 123),
        (DT.datetime.strptime('2010-02-19', "%Y-%m-%d"), 678),
        (DT.datetime.strptime('2010-03-05', "%Y-%m-%d"), 987),
        (DT.datetime.strptime('2010-03-19', "%Y-%m-%d"), 345)]

Voici un exemple de code exécutable à l'aide de pyplot

import datetime as DT
from matplotlib import pyplot as plt

data = [(DT.datetime.strptime('2010-02-05', "%Y-%m-%d"), 123),
        (DT.datetime.strptime('2010-02-19', "%Y-%m-%d"), 678),
        (DT.datetime.strptime('2010-03-05', "%Y-%m-%d"), 987),
        (DT.datetime.strptime('2010-03-19', "%Y-%m-%d"), 345)]

x = [date for (date, value) in data]
y = [value for (date, value) in data]

fig = plt.figure()

graph = fig.add_subplot(111)
graph.plot_date(x,y)

plt.show()

QUESTION RÉSUMÉ:
Ma situation est plus comme j'ai un Axes instance de prêt (référencé par graph dans le code ci-dessus) et je veux faire ce qui suit:

  1. Faire la xticks correspondent à la date exacte de valeurs. J'ai entendu parler de matplotlib.dates.DateLocator mais je n'ai aucune idée de comment créer un puis de l'associer avec un Axes objet.
  2. Obtenir plus de contrôle sur le type de graphique (barres, lignes, points, etc.)

source d'informationauteur Kit