Je suis nouveau sur matplotlib (1.3.1-2) et je ne trouve pas un bon endroit pour commencer. Je veux tracer la distribution des points dans le temps dans un histogramme avec matplotlib.
Fondamentalement, je veux tracer la somme cumulée de l'occurrence d'une date.
date
2011-12-13
2011-12-13
2013-11-01
2013-11-01
2013-06-04
2013-06-04
2014-01-01
...
Cela ferait
2011-12-13 -> 2 times
2013-11-01 -> 3 times
2013-06-04 -> 2 times
2014-01-01 -> once
Puisqu'il y aura de nombreux points sur plusieurs années, je veux définir le start date
sur mon x-Axis
et le end date
, puis marquez n-time steps
(c.-à-d. étapes d'un an) et décidez enfin du nombre de bins
.
Comment pourrais-je y parvenir?
Matplotlib utilise son propre format pour les dates/heures, mais fournit également des fonctions simples à convertir qui sont fournies dans le module dates
. Il fournit également divers Locators
et Formatters
qui prennent soin de placer les graduations sur l'axe et de formater les étiquettes correspondantes. Cela devrait vous aider à démarrer:
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# generate some random data (approximately over 5 years)
data = [float(random.randint(1271517521, 1429197513)) for _ in range(1000)]
# convert the Epoch format to matplotlib date format
mpl_data = mdates.Epoch2num(data)
# plot it
fig, ax = plt.subplots(1,1)
ax.hist(mpl_data, bins=50, color='lightblue')
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))
plt.show()
Résultat: