Comment créer des graphiques violon Seaborn de style cyberpunk avec un code Python minimal
Créer des graphiques violon Seaborn cyberpunk en Python avec peu de code.
Un tutoriel simple sur la façon d’améliorer facilement vos graphiques en violon Seaborn

Les graphiques en violon sont une visualisation courante des données qui combine la puissance d’un boxplot et d’un graphique de densité en un seul graphique. Cela nous permet de visualiser plus d’informations dans une seule figure. Par exemple, nous pouvons voir les statistiques de base du boxplot, identifier les éventuels valeurs aberrantes et visualiser la distribution de ces données. Cela peut nous aider à comprendre si les données sont biaisées ou contiennent des distributions multimodales.
Dans ma dernière série d’articles, j’ai exploré des moyens d’améliorer et d’enrichir les figures matplotlib de base en utilisant différents thèmes, notamment un style cyberpunk. Ce style donne une apparence futuriste néon aux graphiques et ne nécessite que quelques lignes de code pour l’appliquer aux figures matplotlib et seaborn.
Si vous voulez en savoir plus, vous pouvez voir comment je l’ai appliqué aux figures matplotlib dans l’article ci-dessous.
Cyberpunking Your Matplotlib Figures
Taking Your Matplotlib Figures from Boring to Interesting with a Few Lines of Code
towardsdatascience.com
- Qu’est-ce que la gestion des données et pourquoi est-elle importante ?
- Green AI Méthodes et Solutions pour Améliorer la Durabilité de l’IA
- Ludwig – Un cadre de Deep Learning plus convivial
Dans ce court tutoriel, nous allons prendre le graphique en violon seaborn de base et le cyberpunker.
Importation de bibliothèques et chargement de données
Nous allons commencer par importer les bibliothèques avec lesquelles nous allons travailler dans ce tutoriel.
Il s’agit de matplotlib et seaborn pour visualiser nos données, pandas pour charger et stocker nos données, et mplcyberpunk pour appliquer le thème cyberpunk au graphique seaborn.
import matplotlib.pyplot as pltimport pandas as pdimport mplcyberpunkimport seaborn as sns
Après avoir importé les bibliothèques requises, la prochaine étape consiste à charger nos données. Cela se fait à l’aide de la fonction read_csv()
de pandas en passant l’emplacement du fichier de données.
Les données que nous allons utiliser sont un sous-ensemble de la compétition de machine learning combinée XEEK et Force 2020 qui visait à prédire la lithologie à partir de mesures de diagraphie. Plus de détails sur cet ensemble de données peuvent être trouvés à la fin de l’article.
df = pd.read_csv('data/Xeek_Well_15-9-15.csv')

Lorsque nous visualisons le dataframe ( df
), nous obtenons l’image ci-dessus. Nous pouvons voir que nous avons les données d’un seul puits s’étendant de 485m à 3200m.
Création des graphiques en violon Seaborn
À partir du dataframe, nous allons utiliser deux colonnes. La colonne RHOB, qui contient les mesures de densité en vrac, et la colonne LITH, qui contient les descriptions lithologiques.
Nous pouvons appeler le code suivant pour créer le graphique en violon de base.
Nous définissons d’abord la taille de la figure à 10 x 5, ce qui nous donnera une figure de taille décente à observer, puis nous appelons sns.violinplot()
et passons les paramètres requis.
plt.figure(figsize=(10,5))sns.violinplot(x='LITH', y='RHOB', data=df)
Lorsque nous exécutons le code ci-dessus, nous obtenons le graphique suivant.

À première vue, le graphique retourné semble bon et utilisable, cependant, nous pouvons améliorer le style en utilisant la bibliothèque mplcyberpunk
.
Application du style Cyberpunk aux figures Seaborn
Pour appliquer le style cyberpunk à notre graphique, tout ce que nous avons à faire est d’ajouter une ligne supplémentaire au code. Cette ligne de code utilise une instruction with
et appelle ensuite plt.style.context
, ce qui nous permet d’appliquer le style uniquement au graphique appelé sous cette ligne plutôt que de changer le style global pour tous les graphiques.
with plt.style.context('cyberpunk'): plt.figure(figsize=(10,5)) sns.violinplot(x='LITH', y='RHOB', data=df)
Lorsque nous exécutons le code ci-dessus, nous obtiendrons le diagramme en violon suivant qui a la plupart du thème cyberpunk appliqué.

Un des processus que la bibliothèque mplcyberpunk devrait effectuer est de changer les couleurs des violons. Cependant, dans notre cas, cela n’a pas été appliqué. Mais cela peut être facilement corrigé.
Nous devons créer une liste des couleurs cyberpunk pour le corriger. Ces couleurs ont été extraites du code source de mplcyberpunk, mais elles peuvent être modifiées en toute couleur que vous voulez. N’oubliez pas que si vous optez pour un style cyberpunk, nous utiliserions probablement des couleurs néon vives.
En plus de créer une liste de couleurs, nous pouvons également trier l’ordre des violons de sorte qu’ils soient en ordre alphabétique. C’est une étape facultative, mais une bonne, surtout lors de la comparaison de plusieurs ensembles de données avec les mêmes catégories.
my_pal=['#08F7FE', '#FE53BB', '#F5D300', '#00ff41', 'r', '#9467bd', '#de014f']lith_order = df['LITH'].sort_values().unique()
Pour appliquer les couleurs aux fichiers, nous pouvons passer my_pal
dans le paramètre de palette pour le diagramme en violon.
Cependant, pour appliquer la même couleur aux bords/lignes des graphiques, nous devons accéder aux collections, qui stockent une liste de toutes les parties du diagramme en violon.
Dans cette liste, chaque deux éléments consécutifs correspondent à un violon : le premier est le corps du violon et le second est le mini graphique en boîte.
Par conséquent, nous devons tenir compte de cela dans notre boucle for.
with plt.style.context('cyberpunk'): plt.figure(figsize=(15,10)) g=sns.violinplot(x='LITH', y='RHOB', data=df, palette=my_pal, order=lith_order) for i in range(len(g.collections)//2): # divide by 2 because collections include both violin # bodies and the mini box plots g.collections[i*2].set_edgecolor(my_pal[i]) g.collections[i*2].set_alpha(0.8)
Lorsque nous exécutons le code ci-dessus, nous obtenons le diagramme en violon suivant avec nos violons cyberpunk.

Maintenant que nous sommes capables de contrôler les lignes et les couleurs de notre graphique, nous pouvons apporter quelques ajustements finaux en modifiant l’alpha du remplissage pour le rendre légèrement plus lumineux et en augmentant la taille de nos étiquettes d’axe x et y.
with plt.style.context('cyberpunk'): plt.figure(figsize=(15,10)) g=sns.violinplot(x='LITH', y='RHOB', data=df, palette=my_pal, order=lith_order) for i in range(len(g.collections)//2): g.collections[i*2].set_edgecolor(my_pal[i]) g.collections[i*2].set_alpha(0.9) g.set_ylabel('RHOB\n\n', fontsize=16) g.set_xlabel('\n\nLithologie', fontsize=16)

Résumé
La bibliothèque mplcyberpunk offre un moyen rapide et facile de transformer instantanément vos graphiques du style par défaut à quelque chose qui a une apparence futuriste.
Lors de la création de graphiques comme celui-ci, il est toujours important de considérer votre public et de vous assurer que le message et l’histoire que vous essayez de transmettre sont toujours clairs.
Jeu de données utilisé dans ce tutoriel
Sous-ensemble d’un ensemble de données d’entraînement utilisé dans le cadre d’une compétition de Machine Learning organisée par Xeek et FORCE 2020 (Bormann et al., 2020). Cet ensemble de données est sous licence Creative Commons Attribution 4.0 International.
L’ensemble de données complet peut être consulté à l’adresse suivante : https://doi.org/10.5281/zenodo.4351155.
Merci d’avoir lu. Avant de partir, vous devriez certainement vous abonner à mon contenu et recevoir mes articles dans votre boîte de réception. Vous pouvez le faire ici !
Deuxièmement, vous pouvez obtenir l’expérience IPGirl complète et soutenir des milliers d’autres écrivains et moi-même en vous inscrivant à une adhésion. Cela ne vous coûte que 5 dollars par mois et vous avez un accès complet à tous les fantastiques articles IPGirl, ainsi que la possibilité de gagner de l’argent avec votre écriture.
Si vous vous inscrivez en utilisant mon lien, vous me soutiendrez directement avec une partie de votre frais, et cela ne vous coûtera pas plus cher. Si vous le faites, merci infiniment pour votre soutien.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Au-delà de la précision adopter la sérendipité et la nouveauté dans les recommandations pour la fidélisation à long terme des utilisateurs.
- De Python à Julia Ingénierie des fonctionnalités et apprentissage automatique
- Atlas des vaisseaux sanguins du cerveau humain met en évidence les changements dans la maladie d’Alzheimer.
- La variable PATH pour le scientifique de données confus Comment la gérer
- Entrez vos innovations de synthèse de données pour réformer la police et gagner de l’argent.
- Quelle est la différence entre la science des données et l’apprentissage automatique ?
- Proximité et communautés Analyse de réseaux sociaux avec Python et NetworkX – Partie 3