2011-05-05 55 views
26

Sé acerca de plot_date() pero ¿hay un bar_date() por ahí?matplotlib gráfico de barras con las fechas

El método general sería utilizar set_xticks y set_xticklabels, pero me gustaría algo que puede manejar las escalas de tiempo de unas pocas horas a unos pocos años (esto significa involucrar a las garrapatas mayores y menores para hacer las cosas legibles pienso)

Editar: Me di cuenta de que estoy trazando los valores asociados con un intervalo de tiempo específico (que abarca la barra). He actualizado a continuación con la solución básica utilicé:

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() 

Respuesta

36

Todo plot_date hace es trazar la función y la llamada ax.xaxis_date().

Todo lo que necesitará hacer es esto:

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() 

bar graph with x dates

+0

Gracias! Específicamente estoy trazando los valores asociados con un intervalo de tiempo específico (que abarca la barra). Creo que lo tengo resuelto ahora - editaré arriba. –

Cuestiones relacionadas