Estoy usando la función de gráfico de violín de la biblioteca de Seaborn. A veces se visualizan las líneas exteriores:
ya veces no lo son:
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()