[PYTHON] Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)

Wir werden weiterhin über Datenvisualisierung mit Matplotlib und Pandas bis [vorher] sprechen (http://qiita.com/ynakayama/items/9979258ac68cb669757a).

Externe Daten visualisieren

Verwenden wir diesmal externe Daten als praktischere Daten. Laden Sie zunächst die Daten aus dem Pydata-Buch herunter, das auch als Referenz für diesen Artikel verwendet wird.

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')

#Kreuztabellen von CSV-Daten
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

#Normalisieren Sie die Daten
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

#Überziehen mit einem gestapelten Balkendiagramm
party_counts.plot(kind='bar', stacked=True)
plt.show()
plt.savefig("image.png ")

image.png

Aus dieser Grafik können wir ersehen, dass die Anzahl der Personen an Wochenenden (Samstag und Sonntag) zunimmt. Am Sonntag gibt es fast keinen Kunden, und der Anteil der Gruppenkunden, von denen angenommen wird, dass sie mit einer Familie von 3 bis 4 Personen zusammen sind, nimmt deutlich zu.

Histogramm und Anpassung

Das Balkendiagramm stellt dies dar, wenn die Häufigkeit von Werten eine diskrete Variable ist. Lassen Sie uns das Verhältnis von Chips zur Gesamtmenge in einem Balkendiagramm zeigen.

Anpassen einer kontinuierlichen Wahrscheinlichkeitsverteilung an eine Wahrscheinlichkeitsverteilung wie eine Normalverteilung Ich habe dies zuvor am Beispiel der Gaußschen Anpassung erläutert. ** Schätzung der Kerneldichte ** Diagramme werden als KDE-Diagramme bezeichnet. Sie können ein Dichtediagramm mit einer gemischten Normalverteilungskerndichteschätzung erstellen, indem Sie für das Diagramm kind = 'kde' angeben.

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

Sie können so etwas wie eine Anpassung durchführen, indem Sie die Schätzung der Kerneldichte über das normalisierte Histogramm zeichnen. Dies ist eine übliche Technik.

Versuchen wir, ein Diagramm mit zwei verschiedenen Standardnormalverteilungen N (0,1) und N (10,4) anzupassen.

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

#Normalverteilung Teil 1
comp1 = np.random.normal(0,1,size=200) # N(0,1)
#Normalverteilung Teil 2
comp2 = np.random.normal(10,2,size=200) # N(10,4)

#Kombinieren Sie zwei Normalverteilungen zu einer Reihe
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

#Zeichnen Sie ein Balkendiagramm
values.hist(bins=100, alpha=0.3, color='b', normed=True)
#Schätzung der Kerneldichte
values.plot(kind='kde', style='r--')

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

image3.png

Referenz

Einführung in die Datenanalyse mit Python-Datenverarbeitung mit NumPy und Pandas http://www.oreilly.co.jp/books/9784873116556/

Recommended Posts

Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Datenvisualisierungsmethode mit Matplotlib (1)
Datenvisualisierungsmethode mit Matplotlib (2)
Datenvisualisierung mit Pandas
Implementieren Sie "Data Visualization Design # 3" mit Pandas und Matplotlib
Python-Anwendung: Datenvisualisierung # 2: matplotlib
Datenanalyse mit Python-Pandas
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Fall mit Pandas-Plot, Fall mit (reinem) Matplotlib-Plot
Implementieren Sie "Data Visualization Design # 2" mit matplotlib
Pandas Daten lesen
Visualisierung von Breiten- / Längenkoordinatendaten (unter der Annahme meteorologischer Daten) unter Verwendung von Cartopy und Matplotlib
Versuchen Sie es mit PHATE, einer Methode zur Reduzierung und Visualisierung biologischer Daten
Versuchen Sie es mit matplotlib
Lesen Sie Python-CSV-Daten mit Pandas ⇒ Graph mit Matplotlib
[Pandas] Grundlagen der Verarbeitung von Datumsdaten mit dt
100 Sprachverarbeitung Knock-20 (unter Verwendung von Pandas): Lesen von JSON-Daten
100-Sprach-Verarbeitung Knock-98 (unter Verwendung von Pandas): Clustering nach Ward-Methode
100 Sprachverarbeitung Knock-99 (mit Pandas): Visualisierung durch t-SNE
Datenanalyse mit xarray
Analyse von Finanzdaten durch Pandas und deren Visualisierung (2)
Holen Sie sich Amazon RDS (PostgreSQL) -Daten mithilfe von SQL mit Pandas
Python-Datenvisualisierungsbibliotheken
Analyse von Finanzdaten durch Pandas und deren Visualisierung (1)
Kreuztabelle mit Pandas
Wie man Pferderenndaten mit pandas read_html kratzt
Diagrammzeichnung mit matplotlib
[Neueste Methode] Visualisierung von Zeitreihendaten und Extraktion häufiger Muster mithilfe des Pan-Matrix-Profils
Datenbereinigung 2 Datenbereinigung mit DataFrame
Ich habe versucht, Matplotlib zu verwenden
Datenbereinigung mit Python
Ich habe versucht, EKG-Daten mit der K-Shape-Methode zu gruppieren
[Python] Zusammenfassung der Methode zur Tabellenerstellung mit DataFrame (Pandas)
Datenmanipulation mit Pandas!
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
Daten mit Pandas mischen
Visualisierung von Daten anhand einer erklärenden Variablen und einer objektiven Variablen
[Memo] Textabgleich im Pandas-Datenrahmen mit Flashtext
Methodenaufruf mit __getattr__
[Numpy / Pandas / Matplotlib Übung 01]
Erstellen Sie sofort ein Diagramm mit 2D-Daten mit der matplotlib von Python
Hinzufügen neuer Daten (gerade Linien und Diagramme) mit matplotlib
Leicht verständliche [Pandas] -Praxis / Datenbestätigungsmethode für Abiturienten
Analysieren Sie die Aktienkurse mithilfe der Pandas-Datenaggregation und der Gruppenoperationen
[Python] Zufällige Datenextraktion / -kombination aus DataFrame mit Random und Pandas
pandas Matplotlib Zusammenfassung nach Verwendung
Zeichnen Sie Excel-Daten mit matplotlib (1)
Zeichnen Sie mit Pandas mehrere Diagramme
Versuchen Sie es mit matplotlib mit PyCharm
Wählen Sie Features mit Textdaten aus
Klassifizieren Sie Daten nach der k-means-Methode
Diagrammzeichnungsmethode mit matplotlib
Visualisierung von Daten nach Präfektur
Zeichnen Sie Excel-Daten mit matplotlib (2)
Lineare Regressionsmethode mit Numpy
Visualisierungsnotiz von Pandas, Seaborn
SQL-Verbindungsmethode mit pyodbc
Datenverarbeitungstipps mit Pandas