Cet article est partagé par la communauté Huawei Cloud « Utilisation de Seaborn pour implémenter des graphiques statistiques avancés, des boîtes à moustaches à l'exploration de relations multivariables », auteur : Lemony Hug.
Dans le domaine de la science des données et de la visualisation des données, Seaborn est une bibliothèque de visualisation Python populaire. Il est construit sur la base de Matplotlib, offrant une interface graphique plus simple et plus belle, et dispose également de fonctions avancées de graphiques statistiques. Cet article expliquera comment utiliser Seaborn pour implémenter certains graphiques statistiques avancés et fournira des exemples de code correspondants.
Installer Seaborn
Tout d’abord, assurez-vous que Seaborn est installé. Vous pouvez l'installer en utilisant pip :
pip installer seaborn
Importer les bibliothèques nécessaires
Avant de commencer, nous devons importer Seaborn et quelques autres bibliothèques de traitement et de visualisation de données couramment utilisées :
importer Seaborn en tant que SNS importer matplotlib.pyplot en tant que plt importer numpy en tant que np importer des pandas en tant que PD
Boîte à moustaches
Le boxplot est un graphique statistique couramment utilisé pour afficher la distribution des données. Seaborn fournit une interface simple et facile à utiliser pour dessiner des boîtes à moustaches.
# Générer des données aléatoires np.random.seed(0) données = np.random.normal(loc=0, échelle=1, taille=100) # Dessiner une boîte à moustaches sns.boxplot(données=données) plt.title('Box Plot de données aléatoires') plt.show()
Dans cet exemple, nous avons généré un ensemble aléatoire de données et tracé un boxplot à l'aide de la fonction. Grâce à ce graphique, nous pouvons comprendre intuitivement la distribution des données, y compris la médiane, les quartiles et les valeurs aberrantes. sns.boxplot()
Intrigue pour violon
Le graphique en violon est un graphique qui combine des boîtes à moustaches et une estimation de la densité du noyau pour afficher de manière plus intuitive la distribution des données.
# Générer des données aléatoires np.random.seed(0) data1 = np.random.normal(loc=0, échelle=1, taille=100) data2 = np.random.normal(loc=2, échelle=1,5, taille=100) données = np.concatenate([data1, data2]) étiquettes = ['Groupe 1'] * 100 + ['Groupe 2'] * 100 # Dessiner une intrigue de violon sns.violinplot(x=étiquettes, y=données) plt.title('Intrigue de violon de deux groupes') plt.show()
Dans cet exemple, nous avons généré deux ensembles différents de données aléatoires et tracé un tracé en violon à l'aide de la fonction. Grâce à ce graphique, nous pouvons comparer la distribution des deux ensembles de données et observer les différences. sns.violinplot()
Carte de chaleur
Une carte thermique est un graphique qui utilise la couleur pour représenter une matrice de données, souvent utilisée pour montrer la corrélation ou la densité des données.
# Générer des données aléatoires np.random.seed(0) données = np.random.rand(10, 10) # Dessiner une carte thermique sns.heatmap(data, annot=True, cmap='green') plt.title('Carte thermique des données aléatoires') plt.show()
Dans cet exemple, nous avons généré une matrice aléatoire 10x10 et utilisé la fonction pour dessiner une carte thermique. Grâce à ce graphique, nous pouvons comprendre intuitivement la corrélation entre les données et la distribution des données. sns.heatmap()
Graphique d'estimation de la densité du noyau
Le tracé d'estimation de la densité du noyau est une méthode non paramétrique permettant d'estimer la fonction de densité des données en lissant les données observées pour générer une courbe de densité de probabilité continue.
# Générer des données aléatoires np.random.seed(0) données = np.random.normal(loc=0, échelle=1, taille=100) # Dessiner une carte d'estimation de la densité du noyau sns.kdeplot(données, ombre=True) plt.title('Tracé d'estimation de la densité du noyau de données aléatoires') plt.show()
Dans cet exemple, nous avons généré un ensemble de données aléatoires et tracé l'estimation de la densité du noyau à l'aide de la fonction. Ce graphique montre la distribution de densité de probabilité des données et nous aide à mieux comprendre les caractéristiques de distribution des données. sns.kdeplot()
Terrain en paire
Un diagramme de relations par paires est un type de diagramme utilisé pour visualiser les relations entre les variables dans un ensemble de données et est utile pour l'analyse exploratoire des données.
# Générer un ensemble de données aléatoires np.random.seed(0) data = pd.DataFrame(np.random.randn(100, 4), colonnes=['A', 'B', 'C', 'D']) # Dessinez un diagramme de relations par paires sns.pairplot (données) plt.suptitle('Paire de données aléatoires', y=1,02) plt.show()
Dans cet exemple, nous avons généré un ensemble de données aléatoires et utilisé la fonction pour tracer la relation par paire. Ce graphique montre la relation entre deux variables de l'ensemble de données, y compris des nuages de points et des diagrammes de distribution univariés, aidant ainsi à découvrir des modèles et des corrélations entre les variables. sns.pairplot()
Carte des clusters
Un diagramme de cluster est un diagramme utilisé pour afficher les similitudes entre les variables d'un ensemble de données. Les variables similaires sont affichées en groupes via un algorithme de clustering.
# Générer un ensemble de données aléatoires np.random.seed(0) data = pd.DataFrame(np.random.rand(10, 10), colonnes=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H ', 'Je', 'J']) # Dessiner un diagramme de clustering sns.clustermap(données, cmap='viridis') plt.title('Carte de cluster de données aléatoires') plt.show()
Dans cet exemple, nous avons généré un ensemble de données aléatoires et tracé les clusters à l'aide de la fonction. Ce graphique montre les similitudes entre les variables de l'ensemble de données et affiche les variables similaires en groupes via un algorithme de clustering, aidant à découvrir des modèles et des structures entre les variables. sns.clustermap()
Carte de cluster
La carte thermique de clustering est une carte thermique basée sur un algorithme de clustering hiérarchique, qui regroupe les données et les réorganise en fonction des résultats du clustering pour mieux afficher la structure et la corrélation des données.
# Générer des données aléatoires np.random.seed(0) données = np.random.rand(10, 10) # Dessiner une carte thermique de clustering sns.clustermap(data, cmap='coolwarm') plt.title('Clustermap de données aléatoires') plt.show()
Dans cet exemple, nous avons généré une matrice aléatoire 10x10 et tracé une carte thermique de cluster à l'aide de la fonction. Grâce à ce graphique, nous pouvons clairement voir les relations de regroupement entre les données et les similitudes entre les différents points de données. sns.clustermap()
Nuage de points de classification (Pairplot)
Un nuage de points catégoriel est un graphique qui affiche la relation entre plusieurs variables en même temps. Il est souvent utilisé pour explorer la corrélation entre différentes variables dans un ensemble de données.
#Charger un exemple d'ensemble de données iris = sns.load_dataset('iris') # Dessinez un nuage de points de classification sns.pairplot(iris, teinte='espèce', marqueurs=['o', 's', 'D']) plt.title('Pairplot of Iris Dataset') plt.show()
Dans cet exemple, nous utilisons l'ensemble de données d'iris fourni avec Seaborn et utilisons la fonction pour dessiner un nuage de points de classification. Avec ce graphique, nous pouvons voir d'un seul coup d'œil les différences de caractéristiques entre les différentes espèces d'iris, ainsi que les corrélations entre les différentes caractéristiques. sns.pairplot()
Graphique de série chronologique
Un graphique de série chronologique est un graphique utilisé pour afficher des données de séries chronologiques et est souvent utilisé pour analyser les tendances et la périodicité des données au fil du temps.
# Générer des données de séries chronologiques dates = pd.date_range(start='2022-01-01', end='2022-12-31') données = np.random.randn(len(dates)) # Créer un DataFrame df = pd.DataFrame({'Date' : dates, 'Valeur' : données}) # Dessiner un graphique de série chronologique sns.lineplot(x='Date', y='Valeur', data=df) plt.title('Tracé de séries chronologiques de données aléatoires') plt.xlabel('Date') plt.ylabel('Valeur') plt.show()
Dans cet exemple, nous avons généré des données de série chronologique aléatoire et tracé la série chronologique à l'aide de la fonction. Grâce à ce graphique, nous pouvons clairement voir les tendances et la périodicité des données dans le temps. sns.lineplot()
Palettes de couleurs avancées
Seaborn fournit une riche fonction de palette qui peut aider les utilisateurs à choisir des jeux de couleurs appropriés dans les graphiques pour mettre en évidence les points clés ou améliorer les effets de visualisation.
# Utiliser la palette avancée current_palette = sns.color_palette('husl', 5) # Dessiner un histogramme sns.barplot(x=np.arange(5), y=np.random.rand(5), palette=current_palette) plt.title('Tracé à barres avec palette de couleurs avancée') plt.show()
Dans cet exemple, nous avons utilisé une fonction pour sélectionner une palette Husl et généré une palette de 5 couleurs. Nous avons ensuite utilisé cette palette pour dessiner un histogramme afin de démontrer l'effet. sns.color_palette()
Styles de tracé personnalisés
Seaborn permet aux utilisateurs de personnaliser l'apparence des cartes en définissant différents styles pour répondre aux besoins individuels.
# Définir un style personnalisé sns.set_style('whitegrid') # Dessinez un nuage de points sns.scatterplot(x=np.random.randn(100), y=np.random.randn(100)) plt.title('Scatter Plot avec style personnalisé') plt.show()
Dans cet exemple, nous utilisons une fonction pour définir le style du graphique sur une grille blanche et dessiner un nuage de points pour démontrer son effet. sns.set_style()
Dessin multi-panneaux (grilles de facettes)
Seaborn fournit la fonction de traçage multi-panneaux, qui peut afficher plusieurs sous-parcelles en même temps pour mieux comparer la relation entre les différents sous-ensembles.
#Charger un exemple d'ensemble de données conseils = sns.load_dataset('conseils') #Créer un objet FacetGrid g = sns.FacetGrid(tips, col='time', row='smoker') # Dessiner une intrigue de violon g.map(sns.violinplot, 'total_bill') plt.show()
Dans cet exemple, nous utilisons des fonctions pour créer un objet FacetGrid et dessiner des tracés en violon dans différents sous-graphiques pour montrer la distribution des données entre différents sous-ensembles. sns.FacetGrid()
Comparaison de distribution de données (Comparaison de distribution)
Seaborn propose plusieurs façons de comparer les différences entre différentes distributions de données, par exemple en utilisant l'estimation de la densité du noyau ou les histogrammes.
#Charger un exemple d'ensemble de données iris = sns.load_dataset('iris') # Dessiner une carte d'estimation de la densité du noyau sns.kdeplot(data=iris, x='sepal_length', hue='species', fill=True) plt.title('Comparaison de distribution de la longueur des sépales') plt.show()
Dans cet exemple, nous utilisons la fonction pour tracer les estimations de densité de noyau des longueurs de sépales entre les espèces dans l'ensemble de données sur l'iris afin de comparer leurs distributions. sns.kdeplot()
Visualisation groupée
Seaborn peut facilement afficher le regroupement de données, par exemple en utilisant des variables catégorielles pour regrouper et visualiser les données.
#Charger un exemple d'ensemble de données titanic = sns.load_dataset('titanic') # Dessiner des boîtes à moustaches de classification sns.boxplot(data=titanic, x='classe', y='age', hue='sex') plt.title('Box Plot regroupé de l'âge par classe et sexe') plt.show()
Dans cet exemple, nous utilisons des fonctions pour tracer les effets de l'âge sur différentes classes de cabine et sexes dans l'ensemble de données Titanic afin de comparer leurs distributions. sns.boxplot()
Explorer les relations multivariées
Seaborn propose plusieurs façons d'explorer les relations entre plusieurs variables, telles que l'utilisation de matrices de nuages de points ou de diagrammes de relations par paires.
#Charger un exemple d'ensemble de données iris = sns.load_dataset('iris') # Dessiner une matrice de nuages de points sns.pairplot(data=iris, teinte='espèce') plt.title('Pairplot pour explorer les relations multivariées') plt.show()
Dans cet exemple, nous utilisons des fonctions pour tracer des relations par paires entre différentes entités de l'ensemble de données iris afin d'explorer les relations multivariées entre elles. sns.pairplot()
Résumer
Cet article explique comment utiliser Seaborn pour implémenter des graphiques statistiques avancés et fournit des exemples de code riches. Tout d’abord, nous avons appris à dessiner des graphiques statistiques courants, notamment des diagrammes en boîte, des diagrammes en violon, des cartes thermiques, etc., à travers lesquels la distribution et la corrélation des données peuvent être affichées visuellement. Nous avons ensuite exploré des fonctionnalités avancées, telles que les palettes de couleurs, les styles de graphiques personnalisés, les dessins à plusieurs panneaux, etc., qui peuvent aider les utilisateurs à personnaliser l'apparence des graphiques et à améliorer les effets de visualisation. Ensuite, nous avons introduit certaines applications avancées, telles que la comparaison de la distribution des données, l'affichage des groupes de données, l'exploration des relations multivariables, etc. Ces méthodes peuvent aider les utilisateurs à mieux comprendre les relations et les modèles entre les données. En étudiant cet article, les lecteurs peuvent maîtriser les compétences de base d'utilisation de Seaborn pour la visualisation de données et être capables d'utiliser ses riches fonctions et ses interfaces flexibles pour l'analyse et l'exploration des données. Les fonctionnalités puissantes et l'interface simple de Seaborn en font l'un des outils indispensables pour les scientifiques et les analystes de données.
Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~
Les ressources piratées de "Celebrating More Than Years 2" ont été téléchargées sur npm, obligeant npmmirror à suspendre le service unpkg. L'équipe chinoise d' IA de Microsoft a fait ses valises et s'est rendue aux États-Unis, impliquant des centaines de personnes. La bibliothèque de visualisation frontale et le projet open source bien connu de Baidu, ECharts - "aller à la mer" pour soutenir les escrocs Fish ont utilisé TeamViewer pour transférer 3,98 millions ! Que doivent faire les fournisseurs de postes de travail à distance ? Zhou Hongyi : Il ne reste plus beaucoup de temps à Google. Il est recommandé que tous les produits soient open source. Un ancien employé d'une société open source bien connue a annoncé la nouvelle : après avoir été interpellé par ses subordonnés, le responsable technique est devenu furieux et. a licencié l'employée enceinte. Google a montré comment exécuter ChromeOS sur une machine virtuelle Android. Veuillez me donner quelques conseils, quel rôle joue ici time.sleep(6). Microsoft réagit aux rumeurs selon lesquelles l'équipe chinoise d'IA "fait ses valises pour les États-Unis" Le Quotidien du Peuple commente en ligne la charge de type matriochka des logiciels de bureau : Ce n'est qu'en résolvant activement les "ensembles" que nous pourrons avoir un avenir