Estoy tratando de trazar un tiempo-serie de histogramas en Python. Ha habido una pregunta similar sobre esto, pero en R. Así que, básicamente, la misma cosa, pero soy muy malo en R. Hay generalmente de 48 valores por día en mis datos. Donde – 9999 representa la falta de datos. Aquí la muestra de los datos.

Comencé con la lectura de los datos y la construcción de un pandas DataFrame.

import pandas as pd
df = pd.read_csv('sample.csv', parse_dates=True, index_col=0, na_values='-9999') 
print df

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 336 entries, 2008-07-25 14:00:00 to 2008-08-01 13:30:00
Data columns (total 1 columns):
159.487691046    330  non-null values
dtypes: float64(1)

Ahora puedo agrupar los datos por día:

daily = df.groupby(lambda x: x.date())

Pero yo estoy atascado. No sé cómo utilizar esta con matplotlib para obtener mi unicc de los histogramas. Cualquier ayuda es apreciada, no necesariamente el uso de pandas.

InformationsquelleAutor abudis | 2013-06-11

1 Comentario

  1. 5

    Hacer un histograma y el uso de matplotlib del pcolor.

    Necesitamos bin los grupos de manera uniforme, por lo tanto, hacer cubos de forma manual en base a la gama de datos de ejemplo.

    In [26]: bins = np.linspace(0, 360, 10)

    Aplicar histogram a cada grupo.

    In [27]: f = lambda x: Series(np.histogram(x, bins=bins)[0], index=bins[:-1])
    
    In [28]: df1 = daily.apply(f)
    
    In [29]: df1
    Out[29]: 
                0    40   80   120  160  200  240  280  320
    2008-07-25    0    0    0    3   18    0    0    0    0
    2008-07-26    2    0    0    0   17    6   13    1    8
    2008-07-27    4    3   10    0    0    0    0    0   31
    2008-07-28    0    7   15    0    0    0    0    6   20
    2008-07-29    0    0    0    0    0    0   20   26    0
    2008-07-30   10    1    0    0    0    0    1   25    9
    2008-07-31   30    4    1    0    0    0    0    0   12
    2008-08-01    0    0    0    0    0    0    0   14   14

    Siguiente de su vinculada ejemplo en R, el eje horizontal debe ser fechas, y el eje vertical debe ser el rango de los contenedores. El histograma de los valores son un «mapa de calor.»

    In [30]: pcolor(df1.T)
    Out[30]: <matplotlib.collections.PolyCollection at 0xbb60e2c>

    Parcela unicc de histogramas en Python

    Sigue a la etiqueta de los ejes. Esta respuesta debe ser de alguna ayuda.

    • la adición al libro de cocina!
    • Gracias! Esto debe hacerlo. Se me olvidó mencionar que – 9999 es un número que falta y debe ser disarded. Añadiremos a la pregunta.
    • Esto es muy cool!

Dejar respuesta

Please enter your comment!
Please enter your name here