Représentez facilement des données graphiques dans le shell et Python

introduction

Il est souvent facile et souvent volumineux de représenter graphiquement les données acquises régulièrement. Cependant, je pense que les obstacles sont élevés pour les personnes inexpérimentées, j'espère donc leur offrir une entrée. (Le reste est une mission python)

Représentation graphique de meminfo

A titre d'exemple, nous allons facilement représenter graphiquement les informations de / proc / meminfo acquises régulièrement avec shell et python.

On suppose que les informations meminfo sont enregistrées au format <date> / <heure, minute, seconde> / meminfo.log (exemple: 20160224/105312 / meminfo.log)

Le format de meminfo ressemble à ceci

MemTotal:         511476 kB
MemFree:          269240 kB
Buffers:           13936 kB
Cached:            56044 kB
SwapCached:            0 kB
Active:            36944 kB
Inactive:          47324 kB
Active(anon):      14648 kB
Inactive(anon):      208 kB
Active(file):      22296 kB
Inactive(file):    47116 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         511476 kB
LowFree:          269240 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         14304 kB
Mapped:            16548 kB
Shmem:               568 kB
Slab:               7416 kB
SReclaimable:       2600 kB
SUnreclaim:         4816 kB
KernelStack:         504 kB
PageTables:          784 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      255736 kB
Committed_AS:     195212 kB
VmallocTotal:    1548288 kB
VmallocUsed:        8428 kB
VmallocChunk:    1350896 kB

Supposons que vous vouliez représenter graphiquement la valeur de Committed_AS dans meminfo

$ find . -name 'meminfo.log' | sort | xargs grep Committed_AS

Ensuite, la sortie suivante est obtenue.

./20160211/190409/meminfo.log:Committed_AS:     389260 kB
./20160211/191528/meminfo.log:Committed_AS:     389300 kB
./20160211/192648/meminfo.log:Committed_AS:     394600 kB

Ceci est ensuite traité par gawk pour formater le «numéro de date».

$ find . -name 'meminfo.log' | sort | xargs grep Committed_AS | gawk 'match($0, /\/([0-9]+)\/([0-9]+).*[0-9]+ kB/, a) {print a[1] a[2], $2}'
20160211190409 389260
20160211191528 389300
20160211192648 394600

Puis dessinez ceci avec matplot

plot_date.py


#!/usr/bin/env python3 

import matplotlib.pyplot as plt

from datetime import datetime as dt

import sys

[date, y] = zip(*[l.split() for l in sys.stdin])
date=[dt.strptime(d, "%Y%m%d%H%M%S") for d in date]

plt.plot(date,y)

plt.show()
$ find . -name 'meminfo.log' | sort | xargs grep Committed_AS | gawk 'match($0, /\/([0-9]+)\/([0-9]+).*[0-9]+ kB/, a) {print a[1] a[2], $2}' | python3 plot_date.py

mem_plot.png

Recommended Posts

Représentez facilement des données graphiques dans le shell et Python
Hashing de données en R et Python
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Dessin graphique avec python
Dessiner un graphique avec python
Variables Python et types de données appris avec la chimio-automatique
Recevoir et afficher les données de formulaire HTML en Python
Analyse des données: application facile des statistiques descriptives et des statistiques d'estimation aux données CSV en Python
Gérer les données ambiantes en Python
Formatez facilement JSON avec Python
Traitement pleine largeur et demi-largeur des données CSV en Python
Exécuter des commandes shell en Python
Pile et file d'attente en Python
Unittest et CI en Python
J'ai créé un graphique à barres empilées avec matplotlib de Python et ajouté une étiquette de données
Comment exécuter des commandes et des scripts shell externes en python
Trouvons un graphique de la distribution de Poisson et de la distribution cumulative de Poisson en Python et Java, respectivement.
Obtenez des données LeapMotion en Python.
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre list () et [] en Python
Différence entre == et est en python
Afficher les photos en Python et html
Lire les données des tampons de protocole avec Python3
Algorithme de tri et implémentation en Python
Exécutez la commande shell / Python dans R
Manipuler des fichiers et des dossiers en Python
À propos de Python et Cython dtype
Gérez les données au format NetCDF avec Python
Affectations et modifications des objets Python
Vérifiez et déplacez le répertoire en Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
Synthèse de fonctions et application en Python
Exporter et exporter des fichiers en Python
Livre Ali en python: Graphique Sec.2 à 5
Inverser le pseudonyme plat et le katakana en Python2.7
Lire et écrire du texte en Python
[GUI en Python] Menu PyQt5 et barre d'outils-
Créer et lire des paquets de messages en Python
[Python] [3D line graph] Plusieurs données dans un graphique, valeurs d'axe en caractères
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie1-
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Créez votre propre classe de structure graphique et son dessin avec python
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie2-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie4-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie3-
Chevauchement d'expressions régulières en Python et Java
Obtenez des données supplémentaires vers LDAP avec python
Construction de pipeline de données avec Python et Luigi
Différence d'authenticité entre Python et JavaScript
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Les modules et packages en Python sont des "espaces de noms"
Évitez les boucles imbriquées en PHP et Python
Entrée / sortie de données en Python (CSV, JSON)
Différences entre Ruby et Python dans la portée
différence entre les instructions (instructions) et les expressions (expressions) en Python
Valeurs authentiques et vecteurs propres: Algèbre linéaire en Python <7>
Essayez de travailler avec des données binaires en Python
Module d'implémentation de file d'attente et Python "deque"
Utilisez facilement vos propres fonctions en Python
Graphique à lignes pliées et ligne d'échelle en python
Différences entre la syntaxe Python et Java