Visualisez facilement vos données avec Python seaborn.

Matplotlib introduit dans la méthode d'élimination brouillée, mais pour être honnête, je n'ai pas du tout envie de l'utiliser.

Je me demande s'il y a plus de 30 arguments qui peuvent être spécifiés uniquement avec la fonction plot. http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot

Property	Description
agg_filter	unknown
alpha		float (0.0 transparent through 1.0 opaque)
animated	[True | False]
antialiased or aa	[True | False]
axes		an Axes instance
clip_box	a matplotlib.transforms.Bbox instance
clip_on		[True | False]
...

Même ainsi, le résultat est un tel graphe ~~ merdique ~~.

Il semble que si vous faites de votre mieux, vous pouvez dessiner de beaux graphiques, mais vous n'avez pas beaucoup de motivation pour apprendre.

C'est là que seaborn entre en jeu.

Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics.

En d'autres termes, il fournit une interface de niveau supérieur (abstraite) en tant que wrapper pour matplotlib.

C'est comme un package de requêtes pour urllib.

L'interface est également importante, mais si vous pouvez dessiner une telle carte thermique avec environ 10 lignes de code, vous serez motivé pour apprendre.

Cependant, je n'ai pas les données qui semblent être assez grandes pour dessiner soudainement une carte thermique, donc je vais essayer de dessiner un graphique de base en utilisant les données de consommation d'énergie de mes appareils électroménagers.

$réfrigérateur pour chat.csv 
No.,DateTime,Watt,kWh
    1,2015/03/02-23:25:44,58.9,0
    2,2015/03/02-23:35:44,50.6,0.01
    3,2015/03/02-23:45:44,50.3,0.02
    4,2015/03/02-23:55:44,61.7,0.02
    5,2015/03/03-00:05:44,72.4,0.03
    6,2015/03/03-00:15:44,51.3,0.04
    7,2015/03/03-00:25:44,47.7,0.05
    8,2015/03/03-00:35:44,47.6,0.06
    9,2015/03/03-00:45:44,20.2,0.06
   10,2015/03/03-00:55:44,40.5,0.06

Il s'agit du journal acquis par Sanwa Supply TAP-TST10. L'inconvénient est que vous ne pouvez pas vous connecter en temps réel, mais ... eh bien, c'est bon marché.

Si vous le convertissez en DataFrame avec des pandas, ce sera comme ça.

import pandas as pd

data = pd.read_csv("réfrigérateur.csv")
print(data)

       No.             DateTime  Watt    kWh
0        1  2015/03/02-23:25:44  58.9   0.00
1        2  2015/03/02-23:35:44  50.6   0.01
2        3  2015/03/02-23:45:44  50.3   0.02
3        4  2015/03/02-23:55:44  61.7   0.02
4        5  2015/03/03-00:05:44  72.4   0.03
5        6  2015/03/03-00:15:44  51.3   0.04
6        7  2015/03/03-00:25:44  47.7   0.05
7        8  2015/03/03-00:35:44  47.6   0.06
8        9  2015/03/03-00:45:44  20.2   0.06
9       10  2015/03/03-00:55:44  40.5   0.06
10      11  2015/03/03-01:05:44  59.4   0.07
...
[1441 rows x 4 columns]

print(data.DateTime)
0       2015/03/02-23:25:44
1       2015/03/02-23:35:44
2       2015/03/02-23:45:44
3       2015/03/02-23:55:44
4       2015/03/03-00:05:44
5       2015/03/03-00:15:44
6       2015/03/03-00:25:44
7       2015/03/03-00:35:44
8       2015/03/03-00:45:44
9       2015/03/03-00:55:44
10      2015/03/03-01:05:44
...
Name: DateTime, dtype: object

print(data['Watt'])
0       58.9
1       50.6
2       50.3
3       61.7
4       72.4
5       51.3
6       47.7
7       47.6
8       20.2
9       40.5
10      59.4
Name: Watt, dtype: float64

Le code pour visualiser cela avec seaborn est le suivant.

import seaborn as sns
import pandas as pd

data = pd.read_csv("réfrigérateur.csv")

#Utilisez un tracé de points relativement simple
ax = sns.pointplot(
    x='DateTime',   #DateTime sur l'axe des x
    y='Watt',       #Watt sur l'axe y
    data=data,      #Spécifiez DataFrame
    markers=[''])   #Masquer les marqueurs pour tracer les données

#Comme il y a trop de données dans la direction de l'axe x, les étiquettes sont éclaircies tous les jours (les données ne sont pas éclaircies)
xlabels = [datetime.split('-')[0]
    if list(data.DateTime).index(datetime) % 144 is 0 else ''
    for datetime in data.DateTime]

#Définir l'étiquette de l'axe X et faire pivoter l'affichage de l'étiquette de 90 degrés
ax.set_xticklabels(xlabels, rotation='vertical')

#Exporter vers un fichier png
sns.plt.savefig('réfrigérateur.png')

Les données sont trop obstruées ...

Diluez un peu comme suit.

data = pd.read_csv("réfrigérateur.csv")[:360]

Cette fois, ça fait du bien.

La consommation électrique nominale du réfrigérateur est d'environ 110 W, donc lorsque vous voyez que la valeur de crête est de 114,0 W, c'est presque comme spécifié.

data.Watt.mean()
44.557499999999997

data.Watt.min()
2.2999999999999998

data.Watt.max()
114.0

Quelle est la consommation électrique?

import seaborn as sns
import pandas as pd

data = pd.read_csv("réfrigérateur.csv")

#Utilisez un tracé de points relativement simple
ax = sns.pointplot(
    x='DateTime',   #DateTime sur l'axe des x
    y='kWh',        #kWh (consommation d'énergie intégrée) sur l'axe y
    data=data,      #Spécifiez DataFrame
    markers=[''])   #Masquer les marqueurs pour tracer les données

#Comme il y a trop de données dans la direction de l'axe x, les étiquettes sont éclaircies tous les jours (les données ne sont pas éclaircies)
xlabels = [datetime.split('-')[0]
    if list(data.DateTime).index(datetime) % 144 is 0 else ''
    for datetime in data.DateTime]

#Définir l'étiquette de l'axe X et faire pivoter l'affichage de l'étiquette de 90 degrés
ax.set_xticklabels(xlabels, rotation='vertical')

#Exporter vers un fichier png
sns.plt.savefig('Réfrigérateur kWh.png')

Vous pouvez voir que la consommation électrique est d'environ 1 kWh / jour.

data.kWh.max() / 10.0
1.0589999999999999

Référence API seaborn et [galerie](http://stanford.edu/~mwaskom/software/seaborn/examples/index. En regardant html), la tension est élevée.

Tout d'abord, je dois être capable de maîtriser les outils.

Recommended Posts

Visualisez facilement vos données avec Python seaborn.
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Recommandation d'Altair! Visualisation des données avec Python
Analyse de données avec python 2
Bibliothèques de visualisation de données Python
Visualisation des données avec les pandas
Analyse de données avec Python
Visualisation de la logistique avec Python
Exemple de données créées avec python
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Obtenez des données Youtube avec python
Synchronisation facile des dossiers avec Python
Application Python: visualisation de données, partie 2: matplotlib
Compilation facile de Python avec NUITKA-Utilities
Lire des données json avec python
Vue d'ensemble et astuces de Seaborn avec visualisation de données statistiques
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 2
[Python] Traitement parallèle facile avec Joblib
Python mais visualisation facile avec PixieDust
Structure de données Python apprise avec la chimioinfomatique
Transmission de courrier facile avec Hâte Python3
Optimisation bayésienne très simple avec Python
Application Python: visualisation de données partie 1: basique
Traiter les données Pubmed .xml avec python
Exécution parallèle facile avec le sous-processus python
Implémentez "Data Visualization Design # 2" avec matplotlib
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
La bibliothèque de visualisation de données "folium" de Python est très simple d'utilisation
Obtenez des données supplémentaires vers LDAP avec python
Extraction de mots-clés facile avec TermExtract pour Python
Recevoir des données textuelles de mysql avec python
[Python] Test super facile avec instruction assert
[Note] Obtenir des données de PostgreSQL avec Python
[Python] Vérification simple du type d'argument avec la classe de données
Application de Python: visualisation de données Partie 3: divers graphiques
Outil de visualisation Python pour le travail d'analyse de données
Traiter les données Pubmed .xml avec python [Partie 2]
Obtenez des données alimentaires avec l'API Amazon (Python)
Générer des données de test japonais avec Python Faker
J'ai dessiné une carte thermique avec Seaborn [Python]
Convertir des données Excel en JSON avec python
Téléchargez les données de cours des actions japonaises avec Python
Introduction facile de la reconnaissance vocale avec Python
Manipulation des données DynamoDB avec Lambda (Node et Python)
Convertissez des données FX 1 minute en données 5 minutes avec Python
[Easy Python] Lecture de fichiers Excel avec openpyxl
Application Web facile avec Python + Flask + Heroku
Traitez facilement des images en Python avec Pillow
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Faisons la manipulation des données MySQL avec Python
Text mining avec Python ② Visualisation avec Word Cloud
Organisez les données séparées par dossier avec Python
[Easy Python] Lecture de fichiers Excel avec des pandas
Scraping Web facile avec Python et Ruby
[Python] Essayez facilement l'apprentissage amélioré (DQN) avec Keras-RL
Traitez le Big Data avec Dataflow (ApacheBeam) + Python3
FizzBuzz en Python3