Histograma con componentes apilados

Digamos que tengo un valor que he medido todos los días durante los últimos 90 días. Me gustaría trazar un histograma de los valores, pero quiero facilitarle al espectador ver dónde se han acumulado las mediciones en ciertos subconjuntos no superpuestos de los últimos 90 días. Quiero hacer esto "subdividiendo" cada barra del histograma en trozos. Una parte para las observaciones más tempranas, una para las más recientes, una para las más recientes.

Esto suena como un trabajo paradf.plot(kind='bar', stacked=True) pero tengo problemas para obtener los detalles correctos.

Esto es lo que tengo hasta ahora:

import numpy as np
import pandas as pd
import seaborn as sbn

np.random.seed(0)

data = pd.DataFrame({'values': np.random.randn(90)})
data['bin'] = pd.cut(data['values'], 15, labels=False)
forhist = pd.DataFrame({'first70': data[:70].groupby('bin').count()['bin'],
                         'next15': data[70:85].groupby('bin').count()['bin'],
                         'last5': data[85:].groupby('bin').count()['bin']})

forhist.plot(kind='bar', stacked=True)

Y eso me da:

Este gráfico tiene algunas deficiencias:

Las barras están apiladas en el orden incorrecto.last5 debe estar arriba ynext15 en el medio. Es decir. deben apilarse en el orden de las columnas enforhist.Hay espacio horizontal entre las barras.El eje x está etiquetado con números enteros en lugar de algo indicativo de los valores que representan los contenedores. Mi "primera opción" sería tener el eje x etiquetado exactamente como sería si solo corrieradata['values'].hist(). Mi "segunda opción" sería tener el eje x etiquetado con los "nombres del contenedor" que obtendría si lo hicierapd.cut(data['values'], 15). En mi código, usélabels=False porque si no hiciera eso, habría usado las etiquetas del borde del contenedor (como cadenas) como las etiquetas de la barra, y las habría puesto en orden alfabético, haciendo que el gráfico sea básicamente inútil.

¿Cuál es la mejor manera de abordar esto? Siento que estoy usando funciones muy torpes hasta ahora.

Respuestas a la pregunta(1)

Su respuesta a la pregunta