Trois étapes pour la visualisation des données Python

WBOY
Libérer: 2023-04-15 17:04:03
avant
1339 Les gens l'ont consulté

1. Tout d'abord, nous devons savoir quelles bibliothèques nous utilisons pour dessiner des images ?

matplotlib

La bibliothèque de dessin la plus basique en Python est matplotlib, qui est la bibliothèque de visualisation Python la plus basique. visualisation à partir de matplotlib, puis démarrez l'expansion verticale et horizontale.

Seaborn

est une bibliothèque d'effets de visualisation avancée basée sur matplotlib. Elle cible principalement la sélection de fonctionnalités variables dans l'exploration de données et l'apprentissage automatique. Seaborn peut utiliser des codes courts pour dessiner des diagrammes d'effets de visualisation décrivant des données plus dimensionnelles.

D'autres bibliothèques incluent

Bokeh (une bibliothèque utilisée pour la visualisation interactive côté navigateur pour permettre aux analystes d'interagir avec les données) ; Mapbox (une bibliothèque d'outils de visualisation avec un moteur plus puissant pour le traitement des données géographiques) et ainsi de suite.

Cet article utilise principalement matplotlib pour l'analyse de cas

Étape 1 : Déterminer le problème et choisir les graphiques

L'affaire peut être compliquée, mais après la scission, nous devons découvrir quel problème spécifique nous voulons exprimer à travers des graphiques. Pour vous former à la pensée analytique, vous pouvez apprendre les méthodes de la « Méthode McKinsey » et du « Principe de la pyramide ».

Ceci est un résumé sur Internet sur la sélection du type de graphique.

Trois étapes pour la visualisation des données Python

En Python, nous pouvons le résumer dans les quatre éléments visuels de base suivants pour afficher des graphiques :

  • Point : données bidimensionnelles de nuage de points, adaptées aux relations bidimensionnelles simples ;
  • Ligne : tracé linéaire deux ; -données dimensionnelles, adaptées aux séries chronologiques ;
  • Colonne : données bidimensionnelles de tracé à barres, adaptées aux statistiques de catégorie ;
  • Couleur : carte thermique adaptée à l'affichage de la troisième dimension ; tendances changeantes parmi les données, etc. Correspondant à différentes relations, sélectionnez les graphiques correspondants à afficher.
Étape 2 : Transformer les données, appliquer des fonctions

Beaucoup de travaux de programmation en analyse et modélisation de données sont basés sur la préparation des données : chargement, nettoyage, transformation et remodelage. Notre étape de visualisation doit également organiser les données, les convertir dans le format dont nous avons besoin, puis appliquer la méthode de visualisation pour terminer le dessin.

Voici quelques méthodes de conversion de données couramment utilisées :

Fusion : fusionner, concaténer, combiner_frist (similaire à une jointure externe complète dans la base de données)

    Reshape : remodeler la rotation axiale : pivot (similaire à un tableau croisé dynamique Excel) )
  • Déduplication : drop_duplicates
  • Mapping : map
  • Remplacement de remplissage : fillna,replace
  • Renommer l'index de l'axe : rename
  • Convertir les variables catégorielles en fonction get_dummies de la "matrice de variables factices" et en une certaine colonne de données dans df Prenez des valeurs limites et ainsi de suite. La fonction
recherche la fonction correspondante en Python en fonction des graphiques sélectionnés lors de la première étape.

Étape 3 : Paramètres, clairs en un coup d'œil

Une fois le graphique original dessiné, nous pouvons modifier la couleur (color), le style de ligne (linestyle), la marque (maker) ou le titre d'autres éléments de décoration du graphique (Titre), l'étiquette de l'axe en fonction des besoins (xlabel, ylabel), l'échelle de l'axe (set_xticks) et la légende (legend), etc., rendent les graphiques plus intuitifs.

La troisième étape est basée sur la deuxième étape, afin de rendre les graphiques plus clairs et plus clairs. Des paramètres spécifiques peuvent être trouvés dans la fonction graphique.

2. Bases du dessin visuel

Bases du dessin Matplotlib

#导入包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Copier après la connexion

Figure et Subplot

Les graphiques matplotlib sont tous deux situés dans la figure (toile), et Subplot crée un espace d'image. Vous ne pouvez pas dessiner à travers la figure. Vous devez utiliser add_subplot pour créer un ou plusieurs sous-tracés.

figsize peut spécifier la taille de l'image.

#创建画布
fig = plt.figure()
<Figure size 432x288 with 0 Axes>
#创建subplot,221表示这是2行2列表格中的第1个图像。
ax1 = fig.add_subplot(221)
#但现在更习惯使用以下方法创建画布和图像,2,2表示这是一个2*2的画布,可以放置4个图像
fig , axes = plt.subplots(2,2,sharex=True,sharey=True)
#plt.subplot的sharex和sharey参数可以指定所有的subplot使用相同的x,y轴刻度。
Copier après la connexion

Utilisez la méthode subplots_adjust de Figure pour ajuster l'espacement. Trois étapes pour la visualisation des données Python

subplots_adjust(left=None,bottom=None,right=None,
top=None,wspace=None,hspace=None)
Copier après la connexion

Couleur, marqueur et style de ligneTrois étapes pour la visualisation des données Python

La fonction plot de matplotlib accepte un ensemble de coordonnées X et Y, et peut également accepter une abréviation de chaîne représentant la couleur et le style de ligne : **'g--', indiquant que la couleur est vert et le type de ligne est une ligne pointillée '--'. **Il peut également être spécifié explicitement à l'aide de paramètres.

Le graphique linéaire peut également ajouter des marqueurs pour mettre en évidence l'emplacement des points de données. Les balises peuvent également être placées dans la chaîne de format, mais le type de balise et le style de ligne doivent venir après la couleur.

plt.plot(np.random.randn(30),color='g',
 linestyle='--',marker='o')
Copier après la connexion
[<matplotlib.lines.Line2D at 0x8c919b0>]
Copier après la connexion

Échelles, étiquettes et légendes

Les méthodes xlim, xticks et xtickslabels de plt contrôlent respectivement la plage, la position des graduations et les étiquettes des graduations du graphique.

Si la méthode est appelée sans paramètres, la valeur actuelle du paramètre sera renvoyée ; si la méthode est appelée avec des paramètres, la valeur du paramètre sera définie.

plt.plot(np.random.randn(30),color='g',
 linestyle='--',marker='o')
plt.xlim() #不带参数调用,显示当前参数;
#可将xlim替换为另外两个方法试试
Copier après la connexion
(-1.4500000000000002, 30.45)
Copier après la connexion

imgTrois étapes pour la visualisation des données Python

plt.plot(np.random.randn(30),color='g',
 linestyle='--',marker='o')
plt.xlim([0,15]) #横轴刻度变成0-15
Copier après la connexion
(0, 15)
Copier après la connexion

设置标题,轴标签,刻度以及刻度标签

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]) #设置刻度值
labels = ax.set_xticklabels(['one','two','three','four','five']) #设置刻度标签
ax.set_title('My first Plot') #设置标题
ax.set_xlabel('Stage') #设置轴标签
Text(0.5,0,'Stage')
Copier après la connexion

Trois étapes pour la visualisation des données Python

添加图例

图例legend是另一种用于标识图标元素的重要工具。 可以在添加subplot的时候传入label参数。

fig = plt.figure(figsize=(12,5));ax = fig.add_subplot(111)
ax.plot(np.random.randn(1000).cumsum(),'k',label='one') #传入label参数,定义label名称
ax.plot(np.random.randn(1000).cumsum(),'k--',label='two')
ax.plot(np.random.randn(1000).cumsum(),'k.',label='three')
#图形创建完后,只需要调用legend参数将label调出来即可。
ax.legend(loc='best') 
#要求不是很严格的话,建议使用loc=‘best’参数来让它自己选择最佳位置
Copier après la connexion

Trois étapes pour la visualisation des données Python

注解

除标准的图表对象之外,我们还可以自定义添加一些文字注解或者箭头。

注解可以通过text,arrow和annotate等函数进行添加。text函数可以将文本绘制在指定的x,y坐标位置,还可以进行自定义格式

plt.plot(np.random.randn(1000).cumsum())
plt.text(600,10,'test ',family='monospace',fontsize=10)
#中文注释在默认环境下并不能正常显示,需要修改配置文件,
# 使其支持中文字体。具体步骤请自行搜索。
Copier après la connexion

保存图表到文件

利用plt.savefig可以将当前图表保存到文件。例如,要将图表保存为png文件,可以执行

文件类型是根据拓展名而定的。其他参数还有:

  • fname:含有文件路径的字符串,拓展名指定文件类型
  • dpi:分辨率,默认100 facecolor,edgcolor 图像的背景色,默认‘w’白色
  • format:显示设置文件格式('png','pdf','svg','ps','jpg'等)
  • bbox_inches:图表需要保留的部分。如果设置为“tight”,则将尝试剪除图像周围的空白部分
plt.savefig('./plot.jpg') #保存图像为plot名称的jpg格式图像
<Figure size 432x288 with 0 Axes>
Copier après la connexion

3、Pandas中的绘图函数

Matplotlib作图

matplotlib是最基础的绘图函数,也是相对较低级的工具。 组装一张图表需要单独调用各个基础组件才行。Pandas中有许多基于matplotlib的高级绘图方法,原本需要多行代码才能搞定的图表,使用pandas只需要短短几行。

我们使用的就调用了pandas中的绘图包。

import matplotlib.pyplot as plt
Copier après la connexion

线型图

Series和DataFrame都有一个用于生成各类图表的plot方法。 默认情况下,他们生成的是线型图。

s = pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot() #Series对象的索引index会传给matplotlib用作绘制x轴。
Copier après la connexion
<matplotlib.axes._subplots.AxesSubplot at 0xf553128>
Copier après la connexion

Trois étapes pour la visualisation des données Python

df = pd.DataFrame(np.random.randn(10,4).cumsum(0),
columns=['A','B','C','D'])
df.plot() #plot会自动为不同变量改变颜色,并添加图例
Copier après la connexion
<matplotlib.axes._subplots.AxesSubplot at 0xf4f9eb8>
Copier après la connexion

Trois étapes pour la visualisation des données Python

Series.plot方法的参数

  • label:用于图表的标签
  • style:风格字符串,'g--'
  • alpha:图像的填充不透明度(0-1)
  • kind:图表类型(bar,line,hist,kde等)
  • xticks:设定x轴刻度值
  • yticks:设定y轴刻度值
  • xlim,ylim:设定轴界限,[0,10]
  • grid:显示轴网格线,默认关闭
  • rot:旋转刻度标签
  • use_index:将对象的索引用作刻度标签
  • logy:在Y轴上使用对数标尺

DataFrame.plot方法的参数

DataFrame除了Series中的参数外,还有一些独有的选项。

  • subplots:将各个DataFrame列绘制到单独的subplot中
  • sharex,sharey:共享x,y轴
  • figsize:控制图像大小
  • title:图像标题
  • legend:添加图例,默认显示
  • sort_columns:以字母顺序绘制各列,默认使用当前顺序

柱状图

在生成线型图的代码中加上kind=‘bar’或者kind=‘barh’,可以生成柱状图或水平柱状图。

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)
Copier après la connexion
<matplotlib.axes._subplots.AxesSubplot at 0xfe39898>
Copier après la connexion

Trois étapes pour la visualisation des données Python

柱状图有一个非常实用的方法:

利用value_counts图形化显示Series或者DF中各值的出现频率。

比如df.value_counts().plot(kind='bar')

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!

Étiquettes associées:
source:51cto.com
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