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.
Apprentissage recommandé : Tutoriel vidéo Python
Installation :
pip install seaborn
Importer :
importer Seaborn en tant que SNS
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)
génère un ensemble de données comme suit :
sns.set_style()
Les styles d'arrière-plan que vous pouvez choisir sont :
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.
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)
4. Dessiner un nuage de pointsUtilisez 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().
① 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
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()
③ 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 italiquesns.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()
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()
②
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.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.sns.set_style("whitegrid")
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). …]
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.
③
sns.set_style('darkgrid')
plt.title("Dessiner un graphique linéaire", fontsize=18)
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.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)
Plusieurs sous-intrigues
plt.show()
③
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()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 ()
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()
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()
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 noyausns. 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()
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()
Utilisez barplot() pour dessiner un graphique à barres MéthodeUtilisez 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()
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.
sns.set_style('darkgrid')
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 :plt.rcParams['font.sans-serif'] = [ 'STKAITI']9. Dessiner la carte de densité du noyau kdeplot()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( )
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'] 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()
Les paramètres de base sont x, y, data.
La méthode boxplot() est utilisée pour dessinez une boîte à moustaches.De plus, il peut également y avoir 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 :
'Valeur d'attribut XXX' : Y
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,} )
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()
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
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
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.
plt.rcParams['font.sans-serif'] = ['STKAITI'] sns.violinplot(x='type de produit', y='valeur d'attribut XXX', data=df2)
plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.violinplot(x='Valeur d'attribut XXX', y='type de produit' , data=df2)plt.rcParams['font.sans-serif'] = ['STKAITI']
sns.violinplot(x='Product Type' , y='XXX valeur d'attribut', data=df2, hue="numéro du fabricant")
∣ ∣ ∣
12. Dessinez une carte thermique()
importer des pandas en tant que pd importer matplotlib.pyplot en tant que plt
importer des seaborn en tant que snssns.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 Python
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!