Líneas exteriores Seaborn violinplot / boxplot

Estoy usando la función de gráfico de violín de la biblioteca de Seaborn. A veces se visualizan las líneas exteriores: introduzca la descripción de la imagen aquí

ya veces no lo son: introduzca la descripción de la imagen aquí

Estos ejemplos se basan en el mismo bit de código, ejecutando diferentes tiempos:

df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) sns.violinplot(data=df, order=list(df.columns), cut=0,inner='points', bw='silverman', split=True, color='limegreen') plt.show() 

¿Cómo puedo manipular el formato de las líneas exteriores?

Créditos a Serenity por señalar que esto se debe a un error matplotlib (consulte este problema informado).

Se puede resolver utilizando la siguiente función:

 def patch_violinplot(): from matplotlib.collections import PolyCollection ax = plt.gca() for art in ax.get_children(): if isinstance(art, PolyCollection): art.set_edgecolor((0.3, 0.3, 0.3)) 

La reparación del ejemplo se puede hacer mediante:

 df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) sns.violinplot(data=df, order=list(df.columns), cut=0,inner='points', bw='silverman', split=True, color='limegreen') patch_violinplot() plt.show()