DSL Graph mit Python

Da heute ja hier Graphen zum Traffic im Jahr 2016 veröffentlicht wurde hier auch gleich eines der Scripts.

Datenquelle: fb.csv


Monat;Gesendet;Empfangen;Gesamt
Jan;4124;16815;20939
Feb;1078;403;1481
Mar;1199;446;1645
Apr;2464;36476;38940
Mai;92979;615268;708247
Jun;138402;664743;803145
Jul;116406;507155;623561
Aug;35654;471810;507464
Sep;31362;428400;459762
Okt;24072;549927;573999
Nov;44095;914362;958457
Dez;57889;1141699;1199588
Gesamt:;549724;5347504;5897228

Benötigte python Pakete:

  • pygal
  • cairosvg


pip install pygal
pip install cairosvg

bzw.

apt-get install -y python-cairosvg python-pygal

Script welches die Daten ausliest und die Grafik erstellt:


#!/bin/bash

OUT=for i in $(tail -n 13 fb.csv | head -n 12 | awk -F";" {'print $2'} ); do echo -n "$i "; done | sed -e 's/\ $//' | sed -e 's/\ /, /g'
IN=for i in $(tail -n 13 fb.csv | head -n 12 | awk -F";" {'print $3'} ); do echo -n "$i "; done | sed -e 's/\ $//' | sed -e 's/\ /, /g'
SUM=for i in $(tail -n 13 fb.csv | head -n 12 | awk -F";" {'print $4'} ); do echo -n "$i "; done | sed -e 's/\ $//' | sed -e 's/\ /, /g'

echo "
import pygal
bar_chart = pygal.Bar()
bar_chart.x_labels = 'Jan', 'Feb', 'Mar', 'Apr', 'Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'
bar_chart.add('Eingehend', [$IN ])
bar_chart.add('Ausgehend', [$OUT ])
bar_chart.add('Gesamt', [$SUM ])
bar_chart.render_to_file('output.svg')
" > generate.py

/usr/bin/python generate.py

Ausführbar machen und ausführen:

chmod +x generate.sh
./generate.sh

Ergebnis:

PyGal output

Learning Data Mining with Python Ebook for free

Heute gibt es das Buch „Learning Data Mining with Python“ bei PacktPub kostenlos.

Data is the new oil in this information age and today’s free eBook will show you how to apply data mining concepts to real-world problems. Python is one of the most popular languages for data mining because it’s powerful and flexible when it comes to analysis. Deep dive into the libraries available in Python for data mining and learn new algorithms and techniques for turning raw data into insight.

Betrieben von WordPress | Theme: Baskerville 2 von Anders Noren.

Nach oben ↑