Skip to content

Commit

Permalink
Updating links in README
Browse files Browse the repository at this point in the history
  • Loading branch information
Ramana committed Nov 10, 2011
1 parent 8bb428c commit 6e4d363
Showing 1 changed file with 49 additions and 49 deletions.
98 changes: 49 additions & 49 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
###############
Django-Chartit
Django-Chartit
###############

Chartit is a Django app that can be used to easily create charts from the data
in your database. The charts are rendered using ``Highcharts`` and ``jQuery``
JavaScript libraries. Data in your database can be plotted as simple line
charts, column charts, area charts, scatter plots, and many more chart types.
Data can also be plotted as Pivot Charts where the data is grouped and/or
Chartit is a Django app that can be used to easily create charts from the data
in your database. The charts are rendered using ``Highcharts`` and ``jQuery``
JavaScript libraries. Data in your database can be plotted as simple line
charts, column charts, area charts, scatter plots, and many more chart types.
Data can also be plotted as Pivot Charts where the data is grouped and/or
pivoted by specific column(s).

========
Expand All @@ -15,7 +15,7 @@ Features

- Plot charts from models.
- Plot data from multiple models on the same axis on a chart.
- Plot pivot charts from models. Data can be pivoted by across multiple
- Plot pivot charts from models. Data can be pivoted by across multiple
columns.
- Legend pivot charts by multiple columns.
- Combine data from multiple models to plot on same pivot charts.
Expand All @@ -30,43 +30,43 @@ You can install Django-Chartit from PyPI. Just do ::

$ pip install django_chartit

You also need supporting JavaScript libraries. See the
`Required JavaScript Libraries`_ section for more details.
You also need supporting JavaScript libraries. See the
`Required JavaScript Libraries`_ section for more details.

==========
How to Use
==========

Plotting a chart or pivot chart on a webpage involves the following steps.

1. Create a ``DataPool`` or ``PivotDataPool`` object that specifies what data
you need to retrieve and from where.
2. Create a ``Chart`` or ``PivotChart`` object to plot the data in the
1. Create a ``DataPool`` or ``PivotDataPool`` object that specifies what data
you need to retrieve and from where.
2. Create a ``Chart`` or ``PivotChart`` object to plot the data in the
``DataPool`` or ``PivotDataPool`` respectively.
3. Return the ``Chart``/``PivotChart`` object from a django ``view`` function
3. Return the ``Chart``/``PivotChart`` object from a django ``view`` function
to the django template.
4. Use the ``load_charts`` template tag to load the charts to HTML tags with
4. Use the ``load_charts`` template tag to load the charts to HTML tags with
specific `ids`.

It is easier to explain the steps above with examples. So read on.

====================
How to Create Charts
====================
Here is a short example of how to create a line chart. Let's say we have a
simple model with 3 fields - one for month and two for temperatures of Boston
Here is a short example of how to create a line chart. Let's say we have a
simple model with 3 fields - one for month and two for temperatures of Boston
and Houston. ::

class MonthlyWeatherByCity(models.Model):
month = models.IntegerField()
boston_temp = models.DecimalField(max_digits=5, decimal_places=1)
houston_temp = models.DecimalField(max_digits=5, decimal_places=1)

And let's say we want to create a simple line chart of month on the x-axis
And let's say we want to create a simple line chart of month on the x-axis
and the temperatures of the two cities on the y-axis. ::

from chartit import DataPool, Chart

def weather_chart_view(request):
#Step 1: Create a DataPool with the data we want to retrieve.
weatherdata = \
Expand All @@ -76,14 +76,14 @@ and the temperatures of the two cities on the y-axis. ::
'source': MonthlyWeatherByCity.objects.all()},
'terms': [
'month',
'houston_temp',
'houston_temp',
'boston_temp']}
])

#Step 2: Create the Chart object
cht = Chart(
datasource = weatherdata,
series_options =
datasource = weatherdata,
series_options =
[{'options':{
'type': 'line',
'stacking': False},
Expand All @@ -92,20 +92,20 @@ and the temperatures of the two cities on the y-axis. ::
'boston_temp',
'houston_temp']
}}],
chart_options =
chart_options =
{'title': {
'text': 'Weather Data of Boston and Houston'},
'xAxis': {
'title': {
'text': 'Month number'}}})

#Step 3: Send the chart object to the template.
return render_to_response({'weatherchart': cht})

And you can use the ``load_charts`` filter in the django template to render
And you can use the ``load_charts`` filter in the django template to render
the chart. ::

<head>
<head>
<!-- code to include the highcharts and jQuery libraries goes here -->
<!-- load_charts filter takes a comma-separated list of id's where -->
<!-- the charts need to be rendered to -->
Expand All @@ -120,7 +120,7 @@ the chart. ::
How to Create Pivot Charts
===========================

Here is an example of how to create a pivot chart. Let's say we have the
Here is an example of how to create a pivot chart. Let's say we have the
following model. ::

class DailyWeather(models.Model):
Expand All @@ -131,12 +131,12 @@ following model. ::
city = models.CharField(max_length=50)
state = models.CharField(max_length=2)

We want to plot a pivot chart of month (along the x-axis) versus the average
rainfall (along the y-axis) of the top 3 cities with highest average
We want to plot a pivot chart of month (along the x-axis) versus the average
rainfall (along the y-axis) of the top 3 cities with highest average
rainfall in each month. ::

from chartit import PivotDataPool, PivotChart

def rainfall_pivot_chart_view(request):
#Step 1: Create a PivotDataPool with the data we want to retrieve.
rainpivotdata = \
Expand All @@ -150,31 +150,31 @@ rainfall in each month. ::
'legend_by': ['city'],
'top_n_per_cat': 3}}
])

#Step 2: Create the PivotChart object
rainpivcht = \
PivotChart(
datasource = rainpivotdata,
series_options =
datasource = rainpivotdata,
series_options =
[{'options':{
'type': 'column',
'stacking': True},
'terms':[
'avg_rain']}],
chart_options =
chart_options =
{'title': {
'text': 'Rain by Month in top 3 cities'},
'xAxis': {
'title': {
'text': 'Month'}}})

#Step 3: Send the PivotChart object to the template.
return render_to_response({'rainpivchart': rainpivcht})

And you can use the ``load_charts`` filter in the django template to render
And you can use the ``load_charts`` filter in the django template to render
the chart. ::

<head>
<head>
<!-- code to include the highcharts and jQuery libraries goes here -->
<!-- load_charts filter takes a comma-separated list of id's where -->
<!-- the charts need to be rendered to -->
Expand All @@ -189,16 +189,16 @@ the chart. ::
Demo
====

The above examples are just a brief taste of what you can do with
Django-Chartit. For more examples and to look at the charts in actions, check
out the `demo website <http://demo.chartit.shutupandship.com/>`_.
The above examples are just a brief taste of what you can do with
Django-Chartit. For more examples and to look at the charts in actions, check
out the `demo website <http://chartit.shutupandship.com/demo>`_.

===============
Documentation
===============

Full documentation is available
`here <http://docs.chartit.shutupandship.com>`_ .
Full documentation is available
`here <http://chartit.shutupandship.com/docs>`_ .

=============================
Required JavaScript Libraries
Expand All @@ -209,10 +209,10 @@ The following JavaScript Libraries are required for using Django-Chartit.
- `jQuery <http://jquery.com>`_
- `Highcharts <http://highcharts.com>`_

.. note:: While ``Django-Chartit`` itself is licensed under the BSD license,
``Highcharts`` is licensed under the `Highcharts license
<http://www.highcharts.com/license>`_ and ``jQuery`` is licensed under both
.. note:: While ``Django-Chartit`` itself is licensed under the BSD license,
``Highcharts`` is licensed under the `Highcharts license
<http://www.highcharts.com/license>`_ and ``jQuery`` is licensed under both
MIT License and GNU General Public License (GPL) Version 2. It is your own
responsibility to abide by respective licenses when downloading and using
responsibility to abide by respective licenses when downloading and using
the supporting JavaScript libraries.

0 comments on commit 6e4d363

Please sign in to comment.