程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python Data Analysis 11 - seaborn Drawing

編輯:Python

Table des matières

SeabornIntroduction

SeabornInstallation

Documents officiels

SeabornStyle de dessin

sns.axes_style

sns.set_style()

sns.set

sns.despine

SeabornStyle de couleur

SeabornInAxesDessin

SeabornDessin

Cartographie relationnelle

seaborn.relplot()

Utilisation de base

hunParamètres 

AjoutercolEtrowParamètres 

Dessiner un diagramme linéaire 

Cartographie des catégories

Diagramme de dispersion classifié

Carte de répartition par catégorie 

Diagramme statistique de la classification

Diagramme à barres

Diagramme de colonne

Diagramme pointillé

Cartographie de la distribution

Distribution univariée

Distribution bivariée 

pairplot 

Graphique de régression linéaire

Supplément

Diagrammes thermodynamiques et EDAAnalyse exploratoire 


SeabornIntroduction

Seaborn Est basé sur matplotlib Et la structure des données pandas Bibliothèque unifiée de cartographie statistique .Il a défini son propre style à l'avance.Et ensuite encapsulé une série de fonctions de dessin pratiques,Avant de passer matplotlib Il faut beaucoup de code pour mettre en œuvre le diagramme complet ,Utiliser seaborn Ça pourrait être très simple. ,Une ligne de code est terminée.

SeabornInstallation

1.Adoption pip:pip install seaborn;

2.Adoption anaconda:conda install seaborn;

Documents officiels

Site officiel:seaborn: statistical data visualization — seaborn 0.11.2 documentation (pydata.org)http://seaborn.pydata.org/

Documents d'apprentissage chinois :

An introduction to seaborn-Seaborn 0.9 Documents en chinois (cntofu.com)https://www.cntofu.com/book/172/docs/1.md

SeabornStyle de dessin

InseabornMoyenne,Vous pouvez définir le style à travers trois fonctions.Respectivement. sns.set_style;sns.axes_style;sns.set Méthodes.

sns.axes_style

(1) Si aucun paramètre n'est passé , Renvoie les propriétés du champ ;

(2) Styles temporaires ;

with sns.axes_style("dark",{"ytick.left":True}):
sns.scatterplot(x="total_bill",y="tip",data=tips)

Par exemple:

 

sns.set_style()

Cette fonction et sns.axes_style C'est pareil, Est également utilisé pour définir le style de dessin .Mais le style de cette fonction,Ce n'est pas temporaire.,Mais une fois qu'il est réglé, Alors tous les styles de dessin ci - dessous utiliseront ce style .

sns.set_style("darkgrid")
sns.scatterplot(x="total_bill",y="tip",data=tips)

Par exemple:

 

sns.set

set La méthode est également utilisée pour styliser, C'est plus puissant. .Sauf que style À l'extérieur,Vous pouvez également définir la palette,Police,Taille de la police,Couleur, etc., Vous pouvez également configurer d'autres matplotlib.rcParamsParamètres acceptables.

sns.set(rc={"lines.linewidth":4})
fmri = sns.load_dataset("fmri")
sns.lineplot(x="timepoint",y="signal",data=fmri)

Par exemple:

 

sns.despine

Supprimer la fonction spinale ;

Par exemple:

SeabornStyle de couleur

Non recommandé(Pas très pratique à utiliser)Il n'y a pas beaucoup de description ici.

Exemple:

 

 

SeabornInAxesDessin

En fait, seaborn Il y a aussi beaucoup d'utilisation directe dans les fonctions de dessin de Axes Dessin, Lorsque le type de diagramme a été spécifié dans le nom de la fonction ,Ce type de diagramme est utilisé Axes Dessin.Par exemple, sns.scatterplot,sns.lineplot,sns.barplot Attendez..AxesLe dessin peut être utilisé directement avant matplotlib Certains des éléments du diagramme de configuration .

fig,ax = plt.subplots(1,2,figsize=(20,5))
sns.scatterplot(x="total_bill",y="tip",data=tips,ax=ax[0])
sns.barplot(x="day",y="total_bill",data=tips,ax=ax[1])

Par exemple, dessiner un diagramme à barres

Tracer un diagramme de dispersion

 

SeabornDessin

Cartographie relationnelle

seaborn.relplot()

Cette fonction est très puissante,Peut être utilisé pour représenter la relation d'association entre plusieurs variables. Par défaut, un diagramme de dispersion est dessiné , Vous pouvez également dessiner un diagramme de type de ligne ,Quels dessins sont dessinés exactement à travers kind Paramètres à déterminer. En fait, les deux fonctions suivantes sont relplotCas particuliers:

Type de dispersion:scatterplot -> relplot(kind="scatter");

Type linéaire:lineplot -> replot(kind="line");

Utilisation de base

import seaborn as sns
tips = sns.load_dataset("tips",cache=True)
sns.relplot(x="total_bill",y="tip",data=tips)

hunParamètres 

hue Le paramètre est utilisé pour contrôler l'affichage des couleurs de la troisième variable. Par exemple, nous montrons les paramètres du jour de la semaine sur la base du graphique ci - dessus ,Vous pouvez le faire en utilisant le code suivant:

sns.relplot(x="total_bill",y="tip",hue="day",data=tips)

AjoutercolEtrowParamètres 

col Et row ,Le graphique peut être divisé en plusieurs colonnes ou lignes en fonction du nombre de valeurs d'un attribut. Par exemple, sur la base de la figure ci - dessus, nous voulons lunch Et dinner Affichage divisé en deux graphiques ,Et:

# col_wrap=1 Contrôle du saut de ligne
# size Taille du point
sns.relplot(x='total_bill',y='tip',data=tips,col='time',col_wrap=1,size="size")
sns.relplot(x='total_bill',y='tip',data=tips,col='time')

 

Dessiner un diagramme linéaire 

relplot Via les paramètres kind="line" Vous pouvez dessiner un diagramme en ligne.Et il fonctionne plus efficacement que plt.plot Plus fort.plotNe peut spécifier que xAxe etyDonnées de l'axe.Et relplot Il est possible de tracer automatiquement les calculs dans deux ensembles de données.

"""
Besoins:signalAvectimepoint Relations changeantes --- > Diagramme linéaire
Lire le graphique
Ligne --- Moyenne
Les ombres --- Intervalle de confiance
ci=None
style:region Différents styles de lignes sont utilisés dans différentes zones
"""
sns.relplot(x='timepoint',y='signal',data=fmri,kind='line',ci=None,hue="region",col="event",)

 

Cartographie des catégories

Dessin de la carte de classification,Ce qui est adopté est sns.catplot Pour y arriver..cat- Oui.categoryUne abréviation de,Cette méthode dessine par défaut Diagramme de dispersion classifié,Si vous voulez dessiner un autre type de diagramme,C'est aussi par kind Paramètres à spécifier.

Principalement divisé en

(1)Diagramme de dispersion classifié;

(2)Carte de répartition par catégorie;

(3)Diagramme statistique de la classification;

Diagramme de dispersion classifié

Les diagrammes de dispersion classifiés conviennent mieux aux cas où la quantité de données est faible,Ça marche. catplot Pour y arriver., Mais il y a deux façons particulières :

(1)stripplot():catplot(kind="strp")Par défaut;

(2)swarmplot():catplot(kind="swarm");

sns.catplot(x="day",y="total_bill",data=tips,hue="sex")

 

"""
Diagramme de dispersion des grappes
Inconvénients La quantité de données est énorme Sans objet
"""
sns.catplot(x="day",y="total_bill",data=tips,hue="sex",kind="swarm")

Carte de répartition par catégorie 

Carte de répartition par catégorie,Principalement selon la classification, Puis la répartition des données sous chaque classification .Aussi par catplot

 Pour y arriver.,Les trois méthodes suivantes sont différentes kind Paramètres pour:

(1)Schéma du type de boîte:boxplot()        (kind="box")

(2)Diagramme de violon:vioinplot()        (kind=”violin")

 

Diagramme statistique de la classification

Diagramme statistique de la classification,Selon la classification,Compter le nombre ou la proportion de données dans chaque catégorie.Il y a plusieurs façons:

(1)Diagramme à barres:barplot()        (kind="bar")

(2)Diagramme de colonne:countplot()        (kind="count")

(3)Diagramme pointillé:pointplot()        (kind="point")

Diagramme à barres

seaborn Le diagramme à barres a une fonction statistique, Peut compter la proportion de bureaux ,Moyenne,Vous pouvez également compter selon la fonction statistique que vous voulez.

"""
Diagramme statistique de la classification
Besoins: Afficher visuellement les différentes dates total_billNombre
Fil noir Intervalle de confiance Plus la ligne est longue, plus les données sont discrètes
estimator :Fonctions
"""
sns.catplot(x='day',y='total_bill',data=tips,kind='bar',estimator=sum)

 

Diagramme de colonne

Un diagramme cylindrique est un graphique utilisé spécifiquement pour compter le nombre d'occurrences d'une seule variable .

sns.catplot(x="sex",data=titanic,kind="count")

Diagramme pointillé

Les diagrammes pointillés sont très pratiques pour voir les tendances entre les variables .

sns.catplot(x="sex",y="survived",data=titanic,kind="point",hue="class")

 

Cartographie de la distribution

La cartographie de la distribution est principalement divisée en distribution univariée et distribution bivariée et pairplot;

Distribution univariée

Les variables uniques sont principalement contrôlées par des histogrammes ,In seaborn L'histogramme des espèces a été dessiné en utilisant distplot,Parmi eux dist - Oui. distributionUne abréviation de,Non, pas du tout. histogram Une abréviation de.

titanic = pd.read_csv("./seaborn-data-master/titanic.csv")
titanic.head()
sns.distplot(titanic["age"])

Variation des paramètres

"""
Besoins: Observez la répartition par âge de tous
Carte de distribution univariée -- > Histogramme
- kde Montrer ou nonkdeCourbe
- bins Spécifier le nombre de groupes
- rug Plus les données sont denses, plus elles sont centralisées.
- hist Afficher les histogrammes
"""
sns.distplot(age_titanic['age'],bins=30,rug=True,hist=False)

Distribution bivariée 

Le graphique de distribution Multivariable montre la relation de distribution entre les deux variables .Généralement représenté par plusieurs graphiques.Les fonctions utilisées pour les cartes de distribution multivariables sont les suivantes: jointplot.

"""
Distribution bivariée
kind='hex' Points hexagonaux
gridsize Taille du point
height Taille du graphique 20*20
ratio Échelle entre le dessin principal et le dessin auxiliaire
space Distance entre le dessin principal et le dessin auxiliaire
marginal_kws
"""
sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex',gridsize=15,height=5,ratio=3,space=0,marginal_kws={"rug":True,"kde":True},color="red")

pairplot 

Il est souvent utilisé pour apprendre à la machine à choisir le modèle approprié avant de construire le modèle .

sns.pairplot(tips,vars=["total_bill","tip"])

Graphique de régression linéaire

Les graphiques de régression linéaire peuvent nous aider à voir les tendances relationnelles des données.In seaborn Les graines peuvent passer regplot EtlmplotDeux implémentations de fonctions.regplot De x Et y Peut être NumpyTableau,SeriesVariables égales.EtlmplotDexEtyDoit être une chaîne,Et dataLa valeur de ne peut pas être vide:

(1)regplot(x,y,data=None);

(2)lmplot(x,y,data).

Supplément

Diagrammes thermodynamiques et EDAAnalyse exploratoire 

# Saisissez la Bibliothèque que vous souhaitez utiliser
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import seaborn as sns
from pandas_profiling import ProfileReport
"""Analyse des données"""
#Thermographe
# Analyser la corrélation entre les caractéristiques et visualiser .
plt.figure(figsize=(15,10))
sns.heatmap(dataset.corr(),annot=True)
#EDAAnalyse exploratoire
profile = ProfileReport(dataset, title='EDA', explorative=True)
#" Le Premier ne marche pas le second " https://blog.csdn.net/weixin_44527237/article/details/110096564
profile.to_widgets()
profile.to_notebook_iframe()


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved