[PYTHON] Méthode de visualisation de données utilisant matplotlib (+ pandas) (4)

Nous continuerons à parler de visualisation de données avec matplotlib et pandas jusqu'au précédent.

Visualisez les données externes

Utilisons des données externes comme données plus pratiques cette fois. Tout d'abord, téléchargez les données du pydata-book qui sert également de référence pour cet article.

pydata-book/ch08/tips.csv https://github.com/pydata/pydata-book/blob/master/ch08/tips.csv

import numpy as np
from pandas import *
import matplotlib.pyplot as plt

tips = read_csv('tips.csv')

#Tableau croisé des données CSV
party_counts = crosstab(tips.day, tips.size)
print( party_counts )
# =>
# size  1   2   3   4  5  6
# day                      
# Fri   1  16   1   1  0  0
# Sat   2  53  18  13  1  0
# Sun   0  39  15  18  3  1
# Thur  1  48   4   5  1  3

#Normaliser les données
party_counts = party_counts.div(party_counts.sum(1), axis=0)
print( party_counts )
# =>
# [4 rows x 6 columns]
# size         1         2         3         4         5         6
# day
# Fri   0.052632  0.842105  0.052632  0.052632  0.000000  0.000000
# Sat   0.022989  0.609195  0.206897  0.149425  0.011494  0.000000
# Sun   0.000000  0.513158  0.197368  0.236842  0.039474  0.013158
# Thur  0.016129  0.774194  0.064516  0.080645  0.016129  0.048387

#Placage avec un graphique à barres empilées
party_counts.plot(kind='bar', stacked=True)
plt.show()
plt.savefig("image.png ")

image.png

À partir de ce graphique, nous pouvons voir que le nombre de personnes augmente le week-end (samedi et dimanche). Il n'y a quasiment pas de client le dimanche et la proportion de clients de groupe que l'on pense appartenir à une famille de 3 à 4 personnes est en nette augmentation.

Histogramme et ajustement

Le graphique à barres représente cela lorsque la fréquence des valeurs est une variable discrète. Montrons le rapport des jetons au montant total dans un graphique à barres.

Ajustement d'une distribution de probabilité continue à une distribution de probabilité telle qu'une distribution normale j'ai expliqué précédemment en utilisant l'ajustement gaussien comme exemple. ** estimation de la densité du noyau ** Les parcelles sont appelées parcelles KDE. Vous pouvez créer un graphique de densité en utilisant une estimation de densité de noyau de distribution normale mixte en spécifiant kind = 'kde' pour le graphique.

fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)

tips['tip_pct'] = tips['tip'] / tips['total_bill']
result = tips['tip_pct']

result.plot(kind='kde')
ax1.hist(result, bins=50, alpha=0.6)

plt.show()
plt.savefig("image2.png ")

image2.png

Vous pouvez faire quelque chose comme l'ajustement en traçant l'estimation de la densité du noyau au-dessus de l'histogramme normalisé. C'est une technique courante.

Essayons d'ajuster un graphique dessiné avec deux distributions normales standard différentes N (0,1) et N (10,4).

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

#Distribution normale partie 1
comp1 = np.random.normal(0,1,size=200) # N(0,1)
#Distribution normale partie 2
comp2 = np.random.normal(10,2,size=200) # N(10,4)

#Combinez deux distributions normales en une seule série
values = Series(np.concatenate([comp1, comp2]))

print( values )
# =>
# [4 rows x 6 columns]
# 0    -0.305123
# 1    -1.663493
# 2     0.845320
# 3     1.217024
# 4    -0.597437
# 5     0.559524
# 6     0.849613
# 7    -0.916863
# 8     2.705579
# 9     1.397815
# 10   -1.135680
# 11    0.322982
# 12    0.568366
# 13    0.567607
# 14    0.360048
# ...
# 385    15.695692
# 386     8.868396
# 387     8.625446
# 388     5.793579
# 389     8.169981
# 390     8.434327
# 391    10.305067
# 392    11.032880
# 393     8.319812
# 394     9.026077
# 395     9.534395
# 396     4.498352
# 397    12.557349
# 398     7.365278
# 399    11.065254
# Length: 400, dtype: float64

#Dessinez un graphique à barres
values.hist(bins=100, alpha=0.3, color='b', normed=True)
#Estimation de la densité du noyau
values.plot(kind='kde', style='r--')

plt.show()
plt.savefig("image3.png ")

image3.png

référence

Introduction à l'analyse de données avec le traitement des données Python avec NumPy et pandas http://www.oreilly.co.jp/books/9784873116556/

Recommended Posts

Méthode de visualisation de données utilisant matplotlib (+ pandas) (5)
Méthode de visualisation de données utilisant matplotlib (+ pandas) (3)
Méthode de visualisation de données utilisant matplotlib (+ pandas) (4)
Méthode de visualisation de données utilisant matplotlib (1)
Méthode de visualisation de données utilisant matplotlib (2)
Visualisation des données avec les pandas
Implémentez "Data Visualization Design # 3" avec pandas et matplotlib
Application Python: visualisation de données, partie 2: matplotlib
Analyse de données à l'aide de pandas python
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Cas utilisant un tracé de pandas, cas utilisant un tracé matplotlib (pur)
Implémentez "Data Visualization Design # 2" avec matplotlib
lecture de données pandas
Visualisation des données de coordonnées de latitude / longitude (en supposant des données météorologiques) à l'aide de cartopy et matplotlib
Essayez d'utiliser PHATE, une méthode de réduction et de visualisation des données biologiques
Essayez d'utiliser matplotlib
Lire les données csv Python avec Pandas ⇒ Graphique avec Matplotlib
[Pandas] Principes de base du traitement des données de date à l'aide de dt
100 langage de traitement knock-20 (à l'aide de pandas): lecture de données JSON
Traitement de 100 langues knock-98 (en utilisant des pandas): Clustering par méthode Ward
100 traitement du langage knock-99 (à l'aide de pandas): visualisation par t-SNE
Analyse des données à l'aide de xarray
Analyse des données financières par pandas et leur visualisation (2)
Obtenez des données Amazon RDS (PostgreSQL) à l'aide de SQL avec pandas
Bibliothèques de visualisation de données Python
Analyse des données financières par pandas et leur visualisation (1)
Tableau croisé à l'aide de Pandas
Comment récupérer des données de courses de chevaux à l'aide de pandas read_html
Dessin graphique avec matplotlib
[Dernière méthode] Visualisation des données de séries chronologiques et extraction de modèles fréquents à l'aide du profil Pan-Matrix
Nettoyage des données 2 Nettoyage des données à l'aide de DataFrame
J'ai essayé d'utiliser matplotlib
Nettoyage des données à l'aide de Python
J'ai essayé de regrouper les données ECG en utilisant la méthode K-Shape
[Python] Résumé de la méthode de création de table utilisant DataFrame (pandas)
Manipulation des données avec les Pandas!
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
Mélangez les données avec les pandas
Comment visualiser les données par variable explicative et variable objective
[Mémo] Correspondance de texte dans le cadre de données pandas à l'aide de Flashtext
Appel de méthode avec __getattr__
[Exercice Numpy / pandas / matplotlib 01]
Créez instantanément un diagramme de données 2D à l'aide de matplotlib de python
Comment ajouter de nouvelles données (lignes droites et tracés) à l'aide de matplotlib
Méthode de confirmation de la pratique / des données [Pandas] facile à comprendre pour les diplômés du secondaire
Analyser les cours des actions à l'aide de l'agrégation de données pandas et des opérations du groupe
[Python] Extraction / combinaison de données aléatoires à partir de DataFrame en utilisant random et pandas
pandas Matplotlib Résumé par utilisation
Graphique des données Excel avec matplotlib (1)
Dessinez plusieurs graphiques à l'aide de Pandas
Essayez d'utiliser matplotlib avec PyCharm
Sélectionnez des fonctionnalités avec des données textuelles
Classer les données par la méthode k-means
Méthode de dessin graphique avec matplotlib
Visualisation des données par préfecture
Graphique des données Excel avec matplotlib (2)
Méthode de régression linéaire utilisant Numpy
Mémo de visualisation par pandas, seaborn
Méthode de connexion SQL utilisant pyodbc
Conseils de traitement des données avec Pandas