Establecer escala del eje y para pandas Dataframe Boxplot (), 3 Desviaciones?

Estoy tratando de hacer un solo área de gráfico de diagtwig de caja por mes con diferentes diagtwigs de caja agrupados por (y etiquetados) por industria y luego hacer que el eje Y use una escala que yo dictare.

En un mundo perfecto, esto sería dynamic y podría establecer el eje como un cierto número de desviaciones estándar de la media general. Podría vivir con otro tipo de configuración dinámica del eje y, pero me gustaría que fuera estándar en todos los diagtwigs de caja agrupados ‘mensuales’ creados. No sé cuál es la mejor manera de manejar esto todavía y estoy abierto a la sabiduría. Lo único que sé es que los números que se están utilizando ahora son demasiado grandes para que los gráficos sean significativos.

He intentado todo tipo de código y no tuve suerte con la escala del eje y el siguiente código fue lo más cercano que pude al gráfico.

Aquí hay un enlace a algunos datos ficticios: https://drive.google.com/open?id=0B4xdnV0LFZI1MmlFcTBweW82V0k

Y para el código estoy usando Python 3.5:

import pandas as pd import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.use('TkAgg') import pylab df = pd.read_csv('Query_Final_2.csv') df['Ship_Date'] = pd.to_datetime(df['Ship_Date'], errors = 'coerce') df1 = (df.groupby('Industry')) print( df1.boxplot(column='Gross_Margin',layout=(1,9), figsize=(20,10), whis=[5,95]) ,pylab.show() ) 

Aquí hay una versión limpia de su código con la solución:

 import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('Query_Final_2.csv') df['Ship_Date'] = pd.to_datetime(df['Ship_Date'], errors = 'coerce') df1 = df.groupby('Industry') axes = df1.boxplot(column='Gross_Margin',layout=(1,9), figsize=(20,10), whis=[5,95], return_type='axes') for ax in axes.values(): ax.set_ylim(-2.5, 2.5) plt.show() 

La clave es devolver los puntos secundarios como objetos de ejes y establecer los límites individualmente.