Maison  >  Article  >  développement back-end  >  Introduction à quatre méthodes de visualisation de données Python (avec exemples)

Introduction à quatre méthodes de visualisation de données Python (avec exemples)

不言
不言avant
2018-11-27 15:33:354201parcourir

Cet article vous présente une introduction à quatre méthodes de visualisation de données en Python (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin pourront s'y référer.

Résumé : Cet article décrit quatre méthodes de visualisation de données Python : carte thermique, carte de densité bidimensionnelle, carte en araignée et carte arborescente.

La visualisation des données est une partie importante de tout projet de science des données ou d'apprentissage automatique. Les gens commencent souvent par une analyse exploratoire des données (EDA) pour mieux comprendre leurs données, et la création de visualisations peut vraiment aider à rendre les problèmes plus clairs et plus faciles à comprendre, en particulier pour les ensembles de données plus volumineux et de grande dimension. À la fin d'un projet, il est important de pouvoir présenter le résultat final de manière claire, concise et convaincante que vos utilisateurs puissent comprendre et comprendre.

Vous avez peut-être lu mon article précédent "5 visualisations de données rapides et faciles en Python avec Code" , qui présente 5 méthodes de visualisation de base : nuages ​​de points, graphiques linéaires, histogrammes, diagrammes à barres et diagrammes en boîte. . Ces cinq méthodes de visualisation sont simples mais puissantes avec lesquelles vous pouvez certainement tirer d’énormes gains de vos ensembles de données. Dans cet article, nous présenterons 4 autres méthodes de visualisation de données, mais elles sont légèrement plus compliquées. Vous pouvez les utiliser après avoir lu les méthodes de base présentées dans l'article précédent.

Carte thermique

Une carte thermique est une représentation matricielle de données, où chaque valeur matricielle est représentée par une couleur. Différentes couleurs représentent différents niveaux et l'index matriciel relie deux colonnes ou caractéristiques contrastées. Les cartes thermiques sont idéales pour montrer les relations entre plusieurs variables de caractéristiques, car un niveau peut être visualisé directement sous forme de couleur. Vous pouvez également voir comment chaque relation se compare aux autres relations de l'ensemble de données en examinant certains points de la carte thermique. Les couleurs fournissent une représentation simple car très intuitive.

Introduction à quatre méthodes de visualisation de données Python (avec exemples)

Regardez maintenant le code : par rapport à la bibliothèque matplotlib, la bibliothèque seaborn peut être utilisée pour des graphiques plus avancés et nécessite généralement plus de composants, tels que comme plus de couleurs, de graphiques ou de variables. La bibliothèque Matplotlib est utilisée pour afficher des graphiques, numpy est utilisé pour générer des données et pandas est utilisé pour le contrôle. Le traçage n'est qu'un simple appel de fonction Seaborn, et si vous trouvez quelque chose de visuellement spécial, vous pouvez également définir la carte des couleurs via cette fonction.

# Importing libs
importseaborn as sns
import pandas aspd
importnumpyasnp
importmatplotlib.pyplotasplt

# Create a random dataset
data=pd.DataFrame(np.random.random((10,6)), columns=["Iron Man","CaptainAmerica","BlackWidow","Thor","Hulk", "Hawkeye"])

print(data)

# Plot the heatmap
heatmap_plot=sns.heatmap(data, center=0, cmap='gist_ncar')

plt.show()

2D Density Plot (2D Density Plot)

Le 2D Density Plot est une simple extension de la version unidimensionnelle qui vous permet de voir la relation distribution de probabilité entre deux variables. Regardons le tracé de densité 2D ci-dessous. L'échelle de droite représente la probabilité de chaque point en couleur. La probabilité la plus élevée, en regardant l'ensemble de données, semble être d'environ 0,5 en taille et 1,4 en vitesse. Comme vous pouvez le constater, les tracés de densité 2D sont parfaits pour déterminer rapidement les zones de données les plus concentrées pour deux variables, plutôt que pour une seule variable comme les tracés de densité 1D. Les tracés de densité bidimensionnels sont particulièrement utiles lorsque vous disposez de deux variables importantes pour le résultat et que vous souhaitez comprendre comment elles contribuent ensemble à la distribution du résultat.

Introduction à quatre méthodes de visualisation de données Python (avec exemples)

Le code de Seaborn est super simple et nous allons l'introduire en créant une distribution asymétrique. Si vous trouvez que certaines couleurs et nuances sont visuellement plus distinctives, la plupart des paramètres facultatifs visent à un aspect plus clair.

Spider Plot

Spider Plot est l'un des meilleurs moyens d'afficher des relations un-à-plusieurs. Autrement dit, vous pouvez tracer et afficher les valeurs de plusieurs variables par opposition à une seule variable ou catégorie. Dans un diagramme en araignée, les propriétés d’une variable par rapport à une autre sont évidentes car l’aire et la longueur varient dans certaines directions. Si vous souhaitez voir comment les variables se superposent pour plusieurs catégories, tracez-les côte à côte. Dans l'image ci-dessous, il est facile de comparer les différents attributs de trois personnages de films et de voir où se situent leurs points forts !

Introduction à quatre méthodes de visualisation de données Python (avec exemples)

Cette fois, nous pourrons utiliser matplotlib directement pour créer des visualisations au lieu de seaborn. L'angle auquel se trouve chaque attribut doit être calculé car nous voulons qu'ils soient uniformément espacés le long de la circonférence. Nous placerons des étiquettes à chaque angle calculé, puis tracerons la valeur sous la forme d'un point dont la distance par rapport au centre dépend de sa valeur ou de son niveau. Enfin, pour plus de clarté, nous remplirons la zone contenue par les lignes reliant les points de propriété avec une couleur semi-transparente.

# Import libs
import pandas aspd
importseabornassns
importnumpyasnp
importmatplotlib.pyplotasplt

# Get the data
df=pd.read_csv("avengers_data.csv")
print(df)

"""
   #             Name  Attack  Defense  Speed  Range  Health
0  1         Iron Man      83       80     75     70      70
1  2  Captain America      60       62     63     80      80
2  3             Thor      80       82     83    100     100
3  3             Hulk      80      100     67     44      92
4  4      Black Widow      52       43     60     50      65
5  5          Hawkeye      58       64     58     80      65

"""

# Get the data for Iron Man
labels=np.array(["Attack","Defense","Speed","Range","Health"])
stats=df.loc[0,labels].values

# Make some calculations for the plot
angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False)
stats=np.concatenate((stats,[stats[0]]))
angles=np.concatenate((angles,[angles[0]]))

# Plot stuff
fig=plt.figure()
ax=fig.add_subplot(111, polar=True)
ax.plot(angles, stats, 'o-', linewidth=2)
ax.fill(angles, stats, alpha=0.25)
ax.set_thetagrids(angles *180/np.pi, labels)
ax.set_title([df.loc[0,"Name"]])
ax.grid(True)

plt.show()

Diagramme en arbre

Nous utilisons des diagrammes en arbre depuis l'école primaire. Les diagrammes en arbre sont naturels, intuitifs et faciles à expliquer. Les nœuds avec des connexions directes sont étroitement liés et très différents des nœuds avec plusieurs connexions. Dans l'image ci-dessous, j'ai tracé une petite partie de l'ensemble de données

Pokémon avec statistiques de Kaggle :

HP, Attaque, Défense, Attaque spéciale, Défense spéciale, Vitesse

因此,与stats wise最匹配的Pokemon将紧密连接在一起。例如,我们看到,在顶部,Arbok和Fearow是直接连接的,而且,如果我们查看数据,Arbok总共有438个,而Fearow有442个,非常接近。但是一旦我们移动到Raticate,我们得到的总数是413,这与Arbok和Fearow的差别很大,这就是它们被分开的原因。当我们移动树的时候,基于相似性,Pokemon被分的组越来越多。在绿色组中的Pokemon相互之间比红色组中的更相似,即使没有直接的绿色连接。

Introduction à quatre méthodes de visualisation de données Python (avec exemples)

对于树形图,我们实际上要使用Scipy的。在查看了数据集之后,我们将去掉字符串类型的列。我们这么做只是为了要得到正确的可视化结果,但在实践中,最好是把这些字符串转换成分类变量,为了得到更好的结果和进行比较,我们还设置了数据帧索引,以便能够适当地用它作为引用每个节点的列。最后,在Scipy中计算和绘制树形图是非常简单的事了。

# Import libs
import pandas aspd
frommatplotlibimportpyplotasplt
fromscipy.clusterimport hierarchy
importnumpyasnp
# Read in the dataset
# Drop any fields that are strings
# Only get the first 40 because this dataset is big
df=pd.read_csv('Pokemon.csv')
df=df.set_index('Name')
del df.index.name
df=df.drop(["Type 1", "Type 2", "Legendary"], axis=1)
df=df.head(n=40)
# Calculate the distance between each sample
Z =hierarchy.linkage(df, 'ward')
# Orientation our tree
hierarchy.dendrogram(Z, orientation="left", labels=df.index)
plt.show()


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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer