Chartkick - JavaScriptowe wykresy zintegrowane z Django

Aplikacja do generowania prostych wykresów na stronach www zintegrowana z frameworkiem Django.

Chartkick to aplikacja, narzędzie do dynamicznego tworzenia wykresów na stronach internetowych. Dostępna jest wersja dla JavaScript, Ruby, jak i dla Pythona. Wersja dla Pythona integruje się z Django i Flaskiem. Zobaczmy co ta aplikacja potrafi.

Instalacja

Zaczynamy standardowo, czyli od instalacji paczki z pypi:

pip install chartkick

W settingsach Django dodajemy:

INSTALLED_APPS = (
    'chartkick',
)

import chartkick
STATICFILES_DIRS = (
    chartkick.js(),
)

W szablonach, w których chcemy mieć wykresy musimy dodać parę plików JS. Dostępne są dwa backendy - Google Charts oraz Highcharts. W zależności od tego, który backend wybieramy dodajemy różne pliki. Dla Google Charts:

<script src="http://www.google.com/jsapi"></script>
<script src="static/chartkick.js"></script>
A dla Highcharts:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="static/chartkick.js"></script>

Użytkowanie

Kilka przykładowych wykresów znajdziemy na githubie. Żeby osiągnąć taki efek będziemy musieli przekazać do szablonu dane do wykresu - w postaci słownika albo listy, oraz użyć taga szablonowego dostarczanego przez Chartkick. Oto przykład od strony szablonu:

{% load chartkick %}
{% pie_chart data with height='400px' %}
{% line_chart line_data %}
Od strony widoku Django data i line_data to:
context['data'] = {'Python': 52.9, 'Jython': 1.6, 'Iron Python': 27.7}
context['line_data'] = list(enumerate(range(1, 20)))

Z czego wykres liniowy domyślnie oś X interpretuje jako datę/czas a nie jako liczbę. Na githubie znajdziemy też przykłady bardziej złożone wykresy (np. wiele serii danych na wykresie liniowym), choć z Chartkicka raczej nie wyciągniemy nic więcej ponad to. Do bardziej złożonych wykresów naukowych trzeba będzie użyć lepszej biblioteki, np. matplotlib.

Wykresy Chartkick z backendem Highcharts

Wykresy Chartkick z backendem Highcharts

Wykresy Chartkick z backendem Google Charts

Wykresy Chartkick z backendem Google Charts

blog comments powered by Disqus

Kategorie

Strony