La segunda alternativa es el denominado swarm plot, beeswarm o gráfico de enjambre. Este tipo de gráfica se muestra al ejecutar la función a nivel de figura seaborn.catplot con el argumento kind = "swarm" o al ejecutar la función a nivel de ejes equivalente, seaborn.swarmplot. Estas funciones generan gráficas semejantes a las generadas por seaborn.stripplot, pero aplicando a la posición de los puntos cierto algoritmo de forma que no solapen. Esto ofrece una mejor visualización a costa de dejar de ser útil para conjuntos de datos muy grandes:
sns.catplot(x = "class", y = "fare", data = titanic, kind = "swarm");
Como puede apreciarse, esta visualización permite obtener una mejor idea de la distribución de los valores, aunque el área ocupada por cada barra aumenta según aumenta el número de puntos a mostrar.
Al igual que ocurría con el strip plot, podemos mostrar la gráfica horizontalmente intercambiando los argumentos x e y:
sns.catplot(x = "fare", y = "class", data = titanic, kind = "swarm");
-ya sabemos que cuando esto no sea suficiente, disponemos del parámetro orient que nos permite definir explícitamente la orientación del gráfico-.
También podemos añadir una dimensión con el parámetro hue que regula el color de los puntos (ya se ha comentado que esta variable visual es la única soportada por la función sns.catplot y por las funciones a nivel de ejes equivalentes):
sns.catplot(x = "class", y = "fare", data = titanic, kind = "swarm", hue = "sex");