Maison > développement back-end > Tutoriel Python > Explication détaillée de Seaborn de Python (visualisation des données)

Explication détaillée de Seaborn de Python (visualisation des données)

WBOY
Libérer: 2022-04-21 18:08:55
avant
7684 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur python, qui présente principalement des problèmes liés à Seaborn, notamment les nuages ​​de points, les graphiques linéaires, les graphiques à barres, etc. pour le traitement de la visualisation des données. Jetez-y un coup d'œil, j'espère que cela vous aidera. tout le monde.

Explication détaillée de Seaborn de Python (visualisation des données)

Apprentissage recommandé : Tutoriel vidéo Python

1. Installer seaborn

Installation :

pip install seaborn

Importer :

importer Seaborn en tant que SNS


2. Préparer les données

Avant de commencer officiellement, nous utilisons d'abord le code suivant pour préparer un ensemble de données pour un affichage et une utilisation faciles.

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snspd.set_option('display.unicode.east_asian_width', True)df1 = pd.DataFrame(    {'数据序号': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],     '厂商编号': ['001', '001', '001', '002', '002', '002', '003', '003', '003', '004', '004', '004'],     '产品类型': ['AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'],     'A属性值': [40, 70, 60, 75, 90, 82, 73, 99, 125, 105, 137, 120],     'B属性值': [24, 36, 52, 32, 49, 68, 77, 90, 74, 88, 98, 99],     'C属性值': [30, 36, 55, 46, 68, 77, 72, 89, 99, 90, 115, 101]    })print(df1)
Copier après la connexion

génère un ensemble de données comme suit :

       Explication détaillée de Seaborn de Python (visualisation des données)


3.1 Définir le style d'arrière-plan


.

La méthode sns.set_style() est utilisée pour définir le style, et ici Intégré Le style utilise la couleur d'arrière-plan pour représenter le nom, mais le contenu réel ne se limite pas à la couleur d'arrière-plan.

sns.set_style()

Les styles d'arrière-plan que vous pouvez choisir sont :


whitegrid grille blanche
  • fond gris foncé
  • fond blanc blanc
  • ticks Un fond blanc avec des tiques autour
sns.set()
sns.set_style("darkgrid")

sns.set_style("whitegrid") sns.set_style("dark")

sns. set_style("white")

sns.set_style("ticks")





  Parmi eux, sns.set() signifie utiliser un style personnalisé Si aucun paramètre n'est transmis, la valeur par défaut est une grille grise. Style d'arrière-plan. S'il n'y a pas de set() ou set_style(), l'arrière-plan sera blanc.

  Un bug possible : le style "tics" n'est pas valide pour les images dessinées à l'aide de la méthode relplot().

3.3 Autres

La bibliothèque seaborn est encapsulée sur la base de la bibliothèque matplotlib, et son style encapsulé peut rendre notre travail de dessin plus pratique. Les instructions couramment utilisées dans la bibliothèque matplotlib sont toujours valables lors de l'utilisation de la bibliothèque seaborn.


  À propos de la définition d'autres attributs liés au style, tels que les polices, un détail à noter est que ces codes doivent être écrits après sns.set_style() pour être efficaces. Par exemple, le code pour mettre la police en gras (pour éviter les caractères chinois tronqués) :



plt.rcParams['font.sans-serif'] = ['SimHei']

 If le style est défini derrière, la police définie remplacera le style défini, générant ainsi un avertissement. Il en va de même pour les autres attributs.

3.2 Contrôle des frontières

Méthode sns.despine()


# 移除顶部和右部边框,只保留左边框和下边框sns.despine()# 使两个坐标轴相隔一段距离(以10长度为例)sns.despine(offet=10,trim=True)# 移除左边框sns.despine(left=True)# 移除指定边框 (以只保留底部边框为例)sns.despine(fig=None, ax=None, top=True, right=True, left=True, bottom=False, offset=None, trim=False)
Copier après la connexion

4. Dessiner un nuage de points

Utilisez la bibliothèque seaborn pour dessiner un nuage de points, vous pouvez utiliser la méthode replot(), vous pouvez également utilisez la méthode scatter().


Le type de paramètre de la méthode replot est par défaut « dispersé », ce qui signifie dessiner un nuage de points.

Le paramètre de teinte est exprimé dans cette dimension, distinguée par la couleur

① Dessinez un nuage de points pour la valeur de l'attribut A et le numéro de séquence des données, les points de dispersion rouges, la grille grise, conservez les bordures gauche et inférieure


sns. set_style('darkgrid')

plt.rcParams['font.sans-serif'] = ['SimHei'] sns.relplot(x='numéro de série des données', y='Une valeur d'attribut', données =df1, couleur ='rouge') plt.show()

       


② Dessinez un nuage de points pour la valeur de l'attribut A et le numéro de séquence des données. Les points de dispersion affichent différentes couleurs selon les différents types de produits
Grille blanche, bordures gauche et inférieure :

sns.set_style('whitegrid. ' )
plt.rcParams['font.sans-serif'] = ['SimHei']
sns.relplot(x='numéro de série des données', y='Une valeur d'attribut', hue='type de produit', données =df1 )
plt.show()

       Explication détaillée de Seaborn de Python (visualisation des données)


③ Tracez les valeurs des trois champs attribut A, attribut B et attribut C sur le même graphique dans des styles différents (dessinez un nuage de points), axe des x Les données sont de style [0,2,4,6,8...]
ticks (des lignes de cadre dans les quatre directions sont requises) et la police est en italique

sns.set_style(' ticks')
plt.rcParams[' font.sans-serif'] = ['STKAITI']
df2 = df1.copy()
df2.index = list(range(0, len(df2)*2, 2) )
dfs = [df2['Valeur d'attribut A'], df2['Valeur d'attribut B'], df2['Valeur d'attribut C']]
sns.scatterplot(data=dfs)
plt.show()

       Explication détaillée de Seaborn de Python (visualisation des données)


5. Dessinez une figure polyligne

Utilisez la bibliothèque seaborn pour dessiner un graphique linéaire Vous pouvez utiliser la méthode replot() ou la méthode lineplot().

5.1 Utilisez la méthode replot()

sns.replot() dessine un graphique à nuages ​​de points par défaut. Pour dessiner un graphique linéaire, changez simplement le type de paramètre en "ligne".

Exigences : dessinez un graphique linéaire de la valeur de l'attribut A et du numéro de série des données,
grille grise, la police globale est en italique et ajustez la taille de la police du titre, les étiquettes à deux axes,
et la distance entre le système de coordonnées ; et le bord de la toile (définissez ceci La distance est due au fait que la police n'est pas entièrement affichée) :

sns.set(rc={'font.sans-serif': "STKAITI"})
sns. relplot(x='numéro de série des données', y='Une valeur d'attribut', data=df1, color='purple', kind='line')
plt.title("Dessiner un graphique linéaire", fontsize=18)
plt.xlabel('num', fontsize=18)
plt.ylabel('Une valeur d'attribut', fontsize=16)
plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)
plt.show()

              Explication détaillée de Seaborn de Python (visualisation des données)



Exigences : Dessinez des polylignes d'attribut pour différents types de produits (trois lignes dans une image), un style de grille blanche et une police italique.

sns.set_style("whitegrid")
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.relplot(x='numéro de série des données', y='Un attribut value ', hue='product type', data=df1, kind='line')
plt.title("Dessiner un graphique linéaire", fontsize=18)
plt.xlabel('num', fontsize=18)
plut.

Exigences : tracez les valeurs des trois champs A, B et C dans des styles différents sur le même graphique (dessinez un graphique linéaire. Les données de l'axe des x sont [0,2,4,6,8). …]
Style Darkgrid (des lignes de cadre dans les quatre directions sont requises), la police est en italique et les étiquettes de l'axe x, les étiquettes de l'axe y et les titres sont ajoutés. La distance au bord est appropriée.

Explication détaillée de Seaborn de Python (visualisation des données)


sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI'] df2 = df1.copy()
df2.index = list(range( 0, len(df2)*2, 2))
dfs = [df2['Valeur d'attribut A'], df2['Valeur d'attribut B'], df2['Valeur d'attribut C']]
sns.relplot(data= dfs, kind="line")

plt.title("Dessiner un graphique linéaire", fontsize=18)
plt.xlabel('num', fontsize=18)

plt.ylabel('Une valeur d'attribut', fontsize= 16 ) plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)
plt.show()



         




  Plusieurs sous-intrigues

Explication détaillée de Seaborn de Python (visualisation des données)

Colle de sous-graphes multiples horizontaux

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.relplot(data=df1, x=" Valeur d'attribut A", y="Valeur d'attribut B", kind="line", col="numéro de fabricant")
plt.subplots_adjust(left=0.05, right=0.95, bottom=0.1, top=0.9)
plt. show()

Explication détaillée de Seaborn de Python (visualisation des données)

ligne verticale de plusieurs sous-images

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns. relplot(data=df1, x="Valeur d'attribut A", y="Valeur d'attribut B", kind="line", row="Numéro de fabricant")
plt.subplots_adjust(left=0.15, right=0.9, bottom= 0.1, top = 0.95)
PLT.SHOW ()

Explication détaillée de Seaborn de Python (visualisation des données)


5.2 Utilisez la méthode LINEPLOT()

Utilisez la méthode lineplot() pour dessiner le graphique linéaire. Les autres détails sont fondamentalement les mêmes. comme ci-dessus. L'exemple de code est le suivant :

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.lineplot(x=' numéro de série des données', y='Une valeur d'attribut', data =df1, color='violet')
plt.title("Dessiner un graphique en courbes", fontsize=18)
plt.xlabel('num', fontsize= 18)
plt.ylabel('Une valeur d'attribut', fontsize= 16)
plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)
plt.show()

       Explication détaillée de Seaborn de Python (visualisation des données)


sns.set_style('darkgrid')
plt. rcParams['font.sans-serif'] = ['STKAITI']
df2 = df1.copy()
df2.index = list(range(0, len(df2)*2, 2))
dfs = [df2 ['Valeur d'attribut A'], df2['Valeur d'attribut B'], df2['Valeur d'attribut C']]
sns.lineplot(data=dfs)
plt.title("Dessiner un graphique linéaire", fontsize=18)
plt.xlabel('num', fontsize=18)
plt.ylabel('Une valeur d'attribut', fontsize=16)
plt.subplots_adjust(left =0,15, right=0,9, bottom=0,1, top=0,9)
plt.show()

        Explication détaillée de Seaborn de Python (visualisation des données)


6. Pour dessiner un histogramme, displot()

La méthode sns.displot() est utilisé dessiner un histogramme

bins=6 signifie diviser le dessin en six intervalles
rug=True signifie afficher de petites barres fines d'observations sur l'axe des x
kde=True signifie afficher les courbes de densité du noyau

sns. set_style('darkgrid')
plt.rcParams['font.sans-serif'] = [ 'STKAITI']
sns.displot(data=df1[['Valeur de l'attribut C']], bins=6, rug=True , kde=True)
plt.title("Histogramme", fontsize=18)
plt .xlabel('Valeur de l'attribut C', fontsize=18)
plt.ylabel('Quantité', fontsize=16)
plt.subplots_adjust (gauche = 0,15, droite = 0,9, bas = 0,1, haut = 0,9)
plt show()

        Explication détaillée de Seaborn de Python (visualisation des données)


Générez aléatoirement 300 données normalement distribuées et dessinez un histogramme pour afficher la courbe de densité du noyau

sns.set_style('darkgrid')
plt.rcParams['font .sans-serif'] = ['STKAITI']
np.random.seed(13)
Y = np.random.randn(300 )
sns.displot(Y, bins=9, rug=True, kde=True )
plt.title("Histogramme", fontsize=18)
plt.xlabel('Valeur d'attribut C', fontsize=18)
plt .ylabel('Quantity', fontsize=16)
plt.subplots_adjust(left= 0.15, right=0.9, bottom=0.1, top=0.9)
plt.show()

˜ ˜ ˜ ˜ ˜ 7. À dessiner un graphique à barres barplot() Explication détaillée de Seaborn de Python (visualisation des données)


Utilisez barplot() pour dessiner un graphique à barres Méthode

Utilisez les données du champ de type de produit comme données sur l'axe des x et les données de valeur d'attribut A comme données sur l'axe des y. Classer selon différents champs de numéro de fabricant.

Les détails sont les suivants :

sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.barplot(x="type de produit", y='Une valeur d'attribut', hue="Numéro du fabricant", data=df1)
plt.title("Graphique à barres", fontsize=18)
plt.xlabel('Type de produit', fontsize=18)
plt.ylabel('Quantité', fontsize = 16)
plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)
plt.show()

       Explication détaillée de Seaborn de Python (visualisation des données)


8.

Tracer la régression linéaire Le Le modèle utilise la méthode lmplot().

Les principaux paramètres sont x, y, data. Représente respectivement les données de l'axe X, les données de l'axe Y et les données de l'ensemble de données.
De plus, comme mentionné ci-dessus, vous pouvez également spécifier des variables de classification via la teinte ;
Spécifier les variables de classification des colonnes via col pour dessiner plusieurs sous-graphiques horizontaux ;
 Spécifier les variables de classification des lignes via la ligne pour dessiner plusieurs sous-graphiques verticaux ; -images dans chaque ligne via col_wrap ;
Vous pouvez contrôler la hauteur des sous-images via la taille
Vous pouvez contrôler la forme des points via des marqueurs ;

Effectuons une régression linéaire sur la valeur de l'attribut X et la valeur de l'attribut Y. Le code est le suivant :


sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = [ 'STKAITI']

sns.lmplot(x="Valeur d'attribut A", y='Valeur d'attribut B', data=df1) plt.title("Modèle de régression linéaire", fontsize=18)
plt.xlabel(' Une valeur d'attribut', fontsize=18)
plt.ylabel('Valeur d'attribut B', fontsize=16)
plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)
plt.show( )


             

Explication détaillée de Seaborn de Python (visualisation des données)

9. Dessiner la carte de densité du noyau kdeplot()

9.1 Carte générale de densité du noyau

Dessiner la carte de densité de somme nous permet de voir plus intuitivement les caractéristiques de distribution de l'échantillon données. La méthode utilisée pour tracer des tracés de densité de noyau est la méthode kdeplot().

Dessinez un tracé de densité de noyau pour la valeur de l'attribut A et la valeur de l'attribut B. Définissez l'ombre sur True pour afficher l'ombre environnante, sinon uniquement les lignes.


sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']

sns.kdeplot(df1["Une valeur d'attribut"], shade=True, data=df1, color='r') sns.kdeplot(df1["Valeur d'attribut B"], shade=True, data=df1, color='g')
plt.title("Carte de densité du noyau", fontsize =18)
plt.
9.2 Tracé de densité marginale du noyau


La méthode sns.jointplot() est utilisée pour tracer le tracé de la densité marginale du noyau. Le type de paramètre doit être "kde". Lorsque vous utilisez cette méthode, le style sombre est utilisé par défaut. Il n'est pas recommandé d'ajouter d'autres styles manuellement, sinon l'image pourrait ne pas s'afficher correctement.

plt.rcParams['font.sans-serif'] = ['STKAITI']Explication détaillée de Seaborn de Python (visualisation des données) sns.jointplot(x=df1["Valeur d'attribut A"], y=df1["Valeur d'attribut B"], kind="kde", space=0)

plt.show()

˜ ˜ ˜ ˜

10. Pour dessiner une boxplot boxplot()

La méthode boxplot() est utilisée pour dessinez une boîte à moustaches.

Les paramètres de base sont x, y, data.

De plus, il peut également y avoir Explication détaillée de Seaborn de Python (visualisation des données) teinte pour représenter le champ de classification

largeur pour ajuster la largeur de l'armoire
encoche pour indiquer si l'armoire du milieu affiche une encoche, et la valeur par défaut False ne l'affiche pas.

Étant donné que la quantité de données dans la section précédente n'est pas assez grande pour être affichée, un autre ensemble de données est généré ici :




np.random.seed(13)
Y = np.random.randint( 20, 150, 360)
df2 = pd.DataFrame(
{'Numéro de fabricant' : ['001', '001', '001', '002', '002', '002', '003', ' 003', '003' , '004', '004', '004'] * 30,
'Type de produit' : ['AAA', 'BBB', 'CCC', 'AAA', 'BBB', ' CCC', 'AAA' , 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'] * 30,

'Valeur d'attribut XXX' : Y

} )


Une fois généré, commencez à dessiner la boîte à moustaches :

plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.boxplot(x='Product Type', y = 'Valeur d'attribut XXX', data=df2)
plt.show()

       Explication détaillée de Seaborn de Python (visualisation des données)


Après avoir échangé les données des axes x et y

plt.rc : Params['font.sans - serif'] = ['STKAITI']
sns.boxplot(y='product type', x='XXX attribue value', data=df2)
plt.show()

Vous pouvez voir le boxplot La direction change également

         Explication détaillée de Seaborn de Python (visualisation des données)


Utilisez le numéro du fabricant comme champ de classification :

plt.rcParams['font.sans-serif'] = STKAITI']
sns.boxplot (x='Type de produit', y='Valeur d'attribut XXX', data=df2, hue="Numéro de fabricant")
plt.show()

hhh Explication détaillée de Seaborn de Python (visualisation des données)

Le tracé en violon combine les fonctionnalités du boxplot et de la densité du noyau tracé pour montrer la forme de distribution des données.
Utilisez la méthode violinplot() pour dessiner une intrigue en violon.


plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.violinplot(x='type de produit', y='valeur d'attribut XXX', data=df2)

plt. show()


        

Explication détaillée de Seaborn de Python (visualisation des données)plt.rcParams['font.sans-serif'] = ['STKAITI']

sns.violinplot(x='Valeur d'attribut XXX', y='type de produit' , data=df2)
plt.show()


      

Explication détaillée de Seaborn de Python (visualisation des données)plt.rcParams['font.sans-serif'] = ['STKAITI']

sns.violinplot(x='Product Type' , y='XXX valeur d'attribut', data=df2, hue="numéro du fabricant")
plt.show()


∣ ∣ ∣  

12. Dessinez une carte thermique()Explication détaillée de Seaborn de Python (visualisation des données)


.

Gagnez le prix avec des boules bicolores En prenant les données numériques comme exemple pour dessiner une carte thermique, les données ici sont générées à l'aide de nombres aléatoires.

importer des pandas en tant que pd importer matplotlib.pyplot en tant que plt

importer des seaborn en tant que sns

sns.set() plt.figure(figsize=(6,6))
plt.rcParams['font.sans -serif'] = ['STKAITI']

s1 = np.random.randint(0, 200, 33)
s2 = np.random.randint(0, 200, 33)
s3 = np.random.randint( 0, 200, 33)
s4 = np.random.randint(0, 200, 33)
s5 = np.random.randint(0, 200, 33)
s6 = np.random.randint(0, 200, 33 )
s7 = np.random.randint(0, 200, 33)
data = pd.DataFrame(
{'un' : s1,
'deux' : s2,
'trois' : s3,
'quatre' : s4,
'cinq':s5,
'six':s6,
'sept':s7
}
)
 
plt.title('Double Color Ball Heat Map')
sns.heatmap(data, annot=True , fmt ='d', lw=0.5)
plt.xlabel('Chiffres du numéro gagnant')
plt.ylabel('Numéro de boule double couleur')
x = ['1ère position', '2ème position', '3ème position bit', '4ème bit', '5ème bit', '6ème bit', '7ème bit']
plt.xticks(range(0, 7, 1), x, ha='left')
plt.show ()




        

Apprentissage recommandé : Tutoriel vidéo PythonExplication détaillée de Seaborn de Python (visualisation des données)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal