Skip to main content

A thin wrapper around Google Chart API that tries not to invent a new language for describing charts.

Project description

django-chart-tools is a simple app for creating charts in django templates using Google Chart API. It doesn’t try to invent another language for defining charts unlike other Google Chart API wrappers. It instead make it easy to leverage the power of existing user-friendly chart-building tools like http://imagecharteditor.appspot.com/ or http://dexautomation.com/googlechartgenerator.php

Installation

$ pip install django-chart-tools

or

$ easy_install django-chart-tools

or grab the latest and the greatest version from bitbucket (http://bitbucket.org/kmike/django-chart-tools)

Then add ‘chart_tools’ to your INSTALLED_APPS.

Usage

  1. Generate a chart you like using http://imagecharteditor.appspot.com/ .

  2. Copy&paste output to your template and wrap it with {% chart %} … {% endchart %} tags:

    {% load chart_tags %}
    {% chart %}
        http://chart.apis.google.com/chart
           ?chxr=0,0,160
           &chxt=y
           &chbh=a
           &chs=440x220
           &cht=bvs
           &chco=4D89F9
           &chds=0,160
           &chd=t:10,50,60,80,40,60,30
           &chtt=Horizontal+bar+chart
    {% endchart %}

    You’ll get the <img/> tag with generated chart in you template after rendering.

  3. chart tag also allows cleaned-up version of the example above:

    {% load chart_tags %}
    {% chart %}
         chxr=0,0,160
         chxt=y
         chbh=a
         chs=440x220
         cht=bvs
         chco=4D89F9
         chds=0,160
         chd=t:10,50,60,80,40,60,30
         chtt=Horizontal+bar+chart
    {% endchart %}
  4. Replace test data with your real data. For example, we want to provide real values. Change the test data in Image Chart Editor. The parameter we change will be highlited. It is ‘chd’ in our case. So now we replace ‘chd’ data with real data that comes from view:

    {% load chart_tags %}
    {% chart %}
         chxr=0,0,160
         chxt=y
         chbh=a
         chs=440x220
         cht=bvs
         chco=4D89F9
         chds=0,160
         chd=t:{{ values|join:',' }}
         chtt=Horizontal+bar+chart
    {% endchart %}

That’s all.

There is also up-to-date API reference from Google: http://code.google.com/intl/en/apis/chart/docs/chart_params.html

What is {% chart %} tag for

I found plain copy-pasted <img> html tag with some {{ variables }} unmaintainable and unreadable so the {% chart %} was introduced.

  1. It removes all whitespaces;

  2. builds chart url from parameter list;

  3. generates the <img> tag with proper ‘src’, ‘width’ and ‘height’ attributes

so generated charts can be nicely formatted and it is possible to maintain them later.

Reusable chart tags

Once you created a chart you like you’ll possibly want to use it multiple times. The preferred way is to write inclusion template tag around your template:

from django import template
register = template.Library()

@register.inclusion_tag('chart_tools/bar_chart.html')
def bar_chart(values, captions, size='580x100', max_value=None):
    max_value = max_value or max(values)
    return {
        'values': values,
        'captions': captions,
        'size': size,
        'max_value': max_value,
    }

This example bar_chart tag is included in django-chart-tools.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-chart-tools-0.2.1.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file django-chart-tools-0.2.1.tar.gz.

File metadata

File hashes

Hashes for django-chart-tools-0.2.1.tar.gz
Algorithm Hash digest
SHA256 bcb3a9f58a4405c32ea45804824b5fc61fc1245a0dc530886996898695eba528
MD5 c960b54d96f0ee8fda22bfaf2e150031
BLAKE2b-256 480fac178923863eaebeedd6dda3a2fa82e7afec70d4e2e14eea8f7e45a83cb3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page