PythonTrois étapes pour réaliser la visualisation:
Identifier les problèmes,Sélectionner un dessin
Conversion des données,Fonction d'application
Paramètres,En un coup d'oeil.
J'aime cet article.、Attention、- Oui..
Note::Communication Technique、Accès à l'information,À plus tard
matplotlib
PythonMoyenneLa galerie de base estmatplotlib,Est l'un des plus fondamentauxPythonVisualisez la Bibliothèque,En général, ça vient dematplotlibMains en l'air.PythonVisualisation des données,Et commencer à faire des extensions longitudinales et horizontales.
Seaborn
Est basé surmatplotlibGalerie de visualisation avancée pour,Les points ciblés sont principalement la sélection de caractéristiques variables dans l'exploration de données et l'apprentissage automatique,seabornVous pouvez utiliser un petit Code pour dessiner des images visuelles qui décrivent des données plus dimensionnelles
D'autres bibliothèques incluent
Bokeh(Est une bibliothèque pour la visualisation interactive côté navigateur,Permettre aux analystes d'interagir avec les données);Mapbox(Traitement d'une bibliothèque d'outils visuels plus forte pour les moteurs de données géographiques)Attendez un peu!
Utilisation principale de cet articlematplotlibRéalisation d'études de cas
Première étape:Identifier les problèmes,Sélectionner un dessin
Les affaires peuvent être compliquées,Mais après le fractionnement,Nous devons trouver les problèmes spécifiques que nous voulons exprimer graphiquement.La formation à la pensée analytique peut apprendre**《Méthode McKinsey》Et《Principe pyramidal》**Méthodes.
Voici un résumé en ligne sur le choix du type de diagramme.
InPythonMoyenne, Nous pouvons résumer les quatre éléments visuels de base suivants pour montrer les graphiques :
Point:scatter plot Données 2D, Applicable aux relations 2D simples ;
Ligne:line plot Données 2D, Pour les séries chronologiques ;
Columnaire:bar plot Données 2D, Applicable aux statistiques par catégorie ;
Couleur:heatmap Pour afficher la troisième dimension ;
Il existe entre les données Répartition,Composition,Comparaison, Liens et tendances changeantes . Correspond à une relation différente , Sélectionnez le dessin approprié à afficher .
Une grande partie du travail de programmation dans l'analyse et la modélisation des données est basée sur la préparation des données :**Chargement、Nettoyage、Transformation et remodelage.** Nos étapes de visualisation nécessitent également une organisation des données , Convertir au format désiré et appliquer la méthode de visualisation pour compléter le dessin .
Voici quelques méthodes courantes de conversion des données :
Fusionner:merge,concat,combine_frist( Similaire à une connexion externe complète dans une base de données )
Remodelage:reshape;Rotation axiale:pivot(SimilaireexcelTableau pivot)
Poids mort:drop_duplicates
Cartographie:map
Remplacement du remplissage :fillna,replace
Renommer l'index de l'axe:rename
Convertir les variables de classification ‘Matrice des variables fictives’Deget_dummies Fonctions et dans df Pour définir une colonne de données, etc. .
La fonction est basée sur le dessin sélectionné à l'étape 1 ,Va chercher.PythonFonction correspondante dans.
Troisième étape:Paramètres,En un coup d'oeil.
Une fois le dessin original terminé , Nous pouvons modifier les couleurs sur demande (color),Type de ligne(linestyle),Marquage(maker) Ou un autre titre de décoration graphique (Title),Étiquette de l'axe(xlabel,ylabel),Échelle de l'axe(set_xticks), Et la légende (legend)Attendez., Rendre les graphiques plus intuitifs .
La troisième étape est basée sur la deuxième étape , Pour rendre les graphiques plus clairs , Travaux de finition effectués . Les paramètres spécifiques peuvent être trouvés dans la fonction de dessin .
2、 Base de visualisation
Matplotlib Base de dessin
#Importer des paquets
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
FigureEtSubplot
matplotlib Tous les graphiques de Figure(La toile)Moyenne,Subplot Créer un espace image .Impossible de passerfigureDessin,Il faut utiliseradd_subplotCréer un ou plusieurssubplot.
figsize Vous pouvez spécifier la taille de l'image .
#Créer une toile
fig = plt.figure()
<Figure size 432x288 with 0 Axes>
#Créationsubplot,221Ça veut dire que c'est2D'accord2 Dans la grille de liste 1Images.
ax1 = fig.add_subplot(221)
# Mais maintenant vous êtes plus habitué à créer des toiles et des images en utilisant ,2,2Ça veut dire que c'est un2*2La toile de,Peut être placé4Images
fig , axes = plt.subplots(2,2,sharex=True,sharey=True)
#plt.subplotDesharexEtsharey Les paramètres peuvent spécifier tous les subplotUtiliser le mêmex,yÉchelle de l'axe.
UtilisationFigureDesubplots_adjust Méthode pour ajuster l'espacement .
subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)
Couleurcolor,Marquagemarker,Et le type de lignelinestyle
matplotlibDeplotLa fonction accepte un ensemble deXEtYCoordonnées, Vous pouvez également accepter une abréviation de chaîne représentant la couleur et le type de ligne :**‘g–’, Indique que la couleur est verte green, Le type de ligne est ’–'Ligne pointillée.** Vous pouvez également spécifier explicitement les paramètres .
Les graphiques linéaires peuvent également être marqués (marker), Pour mettre en évidence l'emplacement des points de données . Les balises peuvent également être placées dans une chaîne de format , Mais le type de marqueur et le type de ligne doivent être placés derrière la couleur .
plt.plot(np.random.randn(30),color='g',linestyle='--',marker='o')
[<matplotlib.lines.Line2D at 0x8c919b0>]
Échelle,Étiquettes et légendes
pltDexlim、xticksEtxtickslabels Les méthodes sont séparées Plage et position de l'échelle et étiquette de l'échelle du diagramme de contrôle .
Appeler la méthode sans argument , Renvoie la valeur actuelle du paramètre ; Appelé avec des arguments , Définir la valeur du paramètre .
plt.plot(np.random.randn(30),color='g',linestyle='--',marker='o')
plt.xlim() #Appel sans argument, Afficher les paramètres actuels ;
#Peut êtrexlim Essayez les deux autres.
(-1.4500000000000002, 30.45)
plt.plot(np.random.randn(30),color='g',linestyle='--',marker='o')
plt.xlim() #Appel sans argument, Afficher les paramètres actuels ;
#Peut êtrexlim Essayez les deux autres.
(-1.4500000000000002, 30.45)
Définir le titre,Étiquette de l'axe, Échelle et étiquette de l'échelle
fig = plt.figure();ax = fig.add_subplot(1,1,1)
ax.plot(np.random.randn(1000).cumsum())
ticks = ax.set_xticks([0,250,500,750,1000]) #Définir la valeur de l'échelle
labels = ax.set_xticklabels(['one','two','three','four','five']) #Définir l'étiquette de l'échelle
ax.set_title('My first Plot') #Définir le titre
ax.set_xlabel('Stage') #Définir l'étiquette de l'axe
Text(0.5,0,'Stage')
Ajouter une légende
**Légendelegend Est un autre outil important pour identifier les éléments d'icône .** Vous pouvez ajouter subplotEst entrélabelParamètres.
fig = plt.figure(figsize=(12,5));ax = fig.add_subplot(111)
ax.plot(np.random.randn(1000).cumsum(),'k',label='one') #EntréelabelParamètres,DéfinitionlabelNom
ax.plot(np.random.randn(1000).cumsum(),'k--',label='two')
ax.plot(np.random.randn(1000).cumsum(),'k.',label='three')
# Après la création du dessin ,Il suffit d'appelerlegendLes paramètres serontlabel Il suffit de l'ajuster .
ax.legend(loc='best') # Si les exigences ne sont pas très strictes ,Utilisation recommandéeloc=‘best’ Les paramètres lui permettent de choisir la meilleure position
<matplotlib.legend.Legend at 0xa8f5a20>
Notes
En plus des objets graphiques standard , Nous pouvons également personnaliser pour ajouter des annotations de texte ou des flèches .
Les annotations peuvent être faites par text,arrowEtannotate Fonction égale à ajouter .text La fonction peut dessiner le texte dans le x,yCoordonnées, Vous pouvez également personnaliser le formatage
plt.plot(np.random.randn(1000).cumsum())
plt.text(600,10,'test ',family='monospace',fontsize=10)
# Les commentaires chinois ne s'affichent pas normalement dans l'environnement par défaut ,Le Profil doit être modifié, Prend en charge les polices chinoises . Pour plus de détails, veuillez rechercher par vous - même .
Enregistrer le diagramme dans le fichier
Utilisationplt.savefig Vous pouvez enregistrer le diagramme actuel dans un fichier .Par exemple, Pour enregistrer le diagramme sous pngDocumentation,Peut être exécuté
Le type de fichier est basé sur le nom étendu .D'autres paramètres sont::
fname: Chaîne contenant le chemin du fichier , Extension spécifie le type de fichier
dpi:Résolution,Par défaut100 facecolor,edgcolor Couleur de fond de l'image,Par défaut‘w’Blanc
format: Afficher le format du fichier de configuration (‘png’,‘pdf’,‘svg’,‘ps’,'jpg’Attendez.)
bbox_inches: Partie du diagramme à conserver .Si défini à“tight”, Vous tenterez de couper l'espace blanc autour de l'image
plt.savefig('./plot.jpg') #Enregistrer l'image sousplotNomjpgFormat image<Figure size 432x288 with 0 Axes>
MatplotlibCartographie
**matplotlib Est la fonction de dessin la plus basique , Est également un outil relativement faible .** L'assemblage d'un diagramme nécessite des appels individuels aux composants sous - jacents .Pandas Et beaucoup d'entre eux sont basés sur matplotlib Méthodes de dessin avancées pour , Un diagramme qui aurait besoin de plusieurs lignes de code ,Utiliserpandas Juste quelques lignes. .
Ce que nous utilisons est appelé pandas Paquet de dessin dans .
import matplotlib.pyplot as plt
Diagramme linéaire
**SeriesEtDataFrame Il y a un plotMéthodes.**Par défaut, Ils produisent des graphiques linéaires .
s = pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot() #SeriesIndex des objetsindexSera transmis àmatplotlib Utilisé pour dessiner xAxe.
<matplotlib.axes._subplots.AxesSubplot at 0xf553128>
df = pd.DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'])df.plot() #plot Change automatiquement de couleur pour différentes variables ,Et ajouter la légende<matplotlib.axes._subplots.AxesSubplot at 0xf4f9eb8>
Series.plotParamètres de la méthode
label: Étiquettes utilisées pour les diagrammes
style:Chaîne de style,‘g–’
alpha: Opacité de remplissage de l'image (0-1)
kind:Type de diagramme(bar,line,hist,kdeAttendez.)
xticks:RéglagexValeur de l'échelle de l'axe
yticks:RéglageyValeur de l'échelle de l'axe
xlim,ylim: Définir les limites de l'axe ,[0,10]
grid: Afficher les grilles de grille ,Fermeture par défaut
**rot:**Étiquette rotative
use_index: Étiquette les références d'index d'un objet
logy:InYUtiliser une échelle logarithmique sur l'axe
DataFrame.plotParamètres de la méthode
DataFrameSauf queSeries En dehors des paramètres , Il y a aussi des options uniques .
subplots:Et deDataFrame Colonne à dessiner séparément subplotMoyenne
sharex**,sharey**:Partagex,yAxe
figsize: Contrôle de la taille de l'image
title:Titre de l'image
legend:Ajouter une légende,Affichage par défaut
sort_columns: Dessiner les colonnes par ordre alphabétique , L'ordre actuel est utilisé par défaut
Histogramme
Ajouter au Code qui génère le diagramme de type de ligne kind=‘bar’Oukind=‘barh’, Vous pouvez générer un histogramme ou un histogramme horizontal .
fig,axes = plt.subplots(2,1)data = pd.Series(np.random.rand(10),index=list('abcdefghij'))data.plot(kind='bar',ax=axes[0],rot=0,alpha=0.3)data.plot(kind='barh',ax=axes[1],grid=True)<matplotlib.axes._subplots.AxesSubplot at 0xfe39898>
Les histogrammes ont une approche très pratique :
Utilisationvalue_countsAffichage graphiqueSeriesOuDF Fréquence d'occurrence des valeurs dans .
Par exemple,df.value_counts().plot(kind=‘bar’)
Python Voici la syntaxe de base de la visualisation , Les méthodes de dessin des autres graphiques sont similaires .
L'accent est mis sur trois étapes Penser、Sélectionner、Application. Plus de pratique, plus de compétence .
Le Groupe d'échange technique est actuellement ouvert,Le Groupe d'amis a dépassé3000Les gens,La meilleure façon d'ajouter des commentaires est:Source:+Direction de l'intérêt,Pour trouver des amis partageant les mêmes idées
Comment①、Envoyer l'image suivante à Wechat,Reconnaissance par presse longue,Retour en arrière - plan:Ajouter un groupe;
Comment②、Ajouter un microsignal:dkl88191,Remarques:DeCSDN
Comment③、Wechat Search public Number:PythonApprentissage et exploration des données,Retour en arrière - plan:Ajouter un groupe