Project: python-nvd3

Python NVD3 - Chart Library for d3.js

Project Details

Latest version
0.15.0
Home Page
http://github.com/areski/python-nvd3
PyPI Page
https://pypi.org/project/python-nvd3/

Project Popularity

PageRank
0.0015998286708665595
Number of downloads
1428848

Python Wrapper for NVD3 - It's time for beautiful charts

:Description: Python-nvd3 is a wrapper for NVD3 graph library :NVD3: NVD3 http://nvd3.org/ :D3: Data-Driven Documents http://d3js.org/ :Maintainers: Areski_ & Oz_ :Contributors: list of contributors <https://github.com/areski/python-nvd3/graphs/contributors>_

.. _Areski: https://github.com/areski/ .. _Oz: https://github.com/oz123/

.. image:: https://api.travis-ci.org/areski/python-nvd3.png?branch=develop :target: https://travis-ci.org/areski/python-nvd3

.. image:: https://coveralls.io/repos/areski/python-nvd3/badge.png?branch=develop :target: https://coveralls.io/r/areski/python-nvd3?branch=develop

.. image:: https://img.shields.io/pypi/v/python-nvd3.svg :target: https://pypi.python.org/pypi/python-nvd3/ :alt: Latest Version

.. image:: https://img.shields.io/pypi/dm/python-nvd3.svg :target: https://pypi.python.org/pypi/python-nvd3/ :alt: Downloads

.. image:: https://img.shields.io/pypi/pyversions/python-nvd3.svg :target: https://pypi.python.org/pypi/python-nvd3/ :alt: Supported Python versions

.. image:: https://img.shields.io/pypi/l/python-nvd3.svg :target: https://pypi.python.org/pypi/python-nvd3/ :alt: License

.. image:: https://requires.io/github/areski/python-nvd3/requirements.svg?branch=develop :target: https://requires.io/github/areski/python-nvd3/requirements/?branch=develop :alt: Requirements Status

NVD3 is an attempt to build re-usable charts and chart components for d3.js without taking away the power that d3.js offers you.

Python-NVD3 makes your life easy! You write Python and the library renders JavaScript for you! These graphs can be part of your web application:

.. image:: https://raw.githubusercontent.com/areski/python-nvd3/develop/docs/showcase/multiple-charts.png

Want to try it yourself? Install python-nvd3, enter your python shell and try this quick demo::

>>> from nvd3 import pieChart
>>> type = 'pieChart'
>>> chart = pieChart(name=type, color_category='category20c', height=450, width=450)
>>> xdata = ["Orange", "Banana", "Pear", "Kiwi", "Apple", "Strawberry", "Pineapple"]
>>> ydata = [3, 4, 0, 1, 5, 7, 3]
>>> extra_serie = {"tooltip": {"y_start": "", "y_end": " cal"}}
>>> chart.add_serie(y=ydata, x=xdata, extra=extra_serie)
>>> chart.buildcontent()
>>> print chart.htmlcontent

This will output the following HTML to render a live chart. The HTML could be stored into a HTML file, used in a Web application, or even used via Ipython Notebook::

<div id="pieChart"><svg style="width:450px;height:450px;"></svg></div>
<script>
data_pieChart=[{"values": [{"value": 3, "label": "Orange"},
               {"value": 4, "label": "Banana"},
               {"value": 0, "label": "Pear"},
               {"value": 1, "label": "Kiwi"},
               {"value": 5, "label": "Apple"},
               {"value": 7, "label": "Strawberry"},
               {"value": 3, "label": "Pineapple"}], "key": "Serie 1"}];

nv.addGraph(function() {
    var chart = nv.models.pieChart();
    chart.margin({top: 30, right: 60, bottom: 20, left: 60});
    var datum = data_pieChart[0].values;
            chart.tooltipContent(function(key, y, e, graph) {
                var x = String(key);
                var y =  String(y)  + ' cal';
                tooltip_str = '<center><b>'+x+'</b></center>' + y;
                return tooltip_str;
            });
        chart.showLegend(true);
        chart.showLabels(true);
        chart.donut(false);
    chart
        .x(function(d) { return d.label })
        .y(function(d) { return d.value });
    chart.width(450);
    chart.height(450);
    d3.select('#pieChart svg')
        .datum(datum)
        .transition().duration(500)
        .attr('width', 450)
        .attr('height', 450)
        .call(chart);
});
</script>

Documentation

Check out the documentation on Read the Docs_ for some live Chart examples!

.. _Read the Docs: http://python-nvd3.readthedocs.org

Installation

Install, upgrade and uninstall python-nvd3 with these commands::

$ pip install python-nvd3
$ pip install --upgrade python-nvd3
$ pip uninstall python-nvd3

Dependecies

D3 and NvD3 can be installed through bower (which itself can be installed through npm). See http://bower.io/ and https://npmjs.org for further information. To install bower globally execute::

$ npm install -g bower

Note : you might prefer to save your npm dependencies locally in a package.json file.

Then in the directory where you will use python-nvd3, just execute the following commands::

$ bower install d3#3.3.8
$ bower install nvd3#1.1.12-beta

This will create a directory "bower_components" where d3 & nvd3 will be saved.

Note : you might prefer to save your bower dependencies locally in a bower.json file. You can also configure the directory where your bower dependencies will be saved adding a .bowerrc file in your project root directory.

Django Wrapper

There is also a django wrapper for nvd3 available: https://github.com/areski/django-nvd3

IPython Notebooks

Python-NVD3 works nicely within IPython Notebooks (thanks to @jdavidheiser)

See the examples directory for an Ipython notebook with python-nvd3.

License

Python-nvd3 is licensed under MIT, see MIT-LICENSE.txt.

History

0.14.0 - (2015-12-09)

  • update project structure
  • remove setuptools from requirements

0.13.8 - (2015-04-12)

  • fix scatterChart

0.13.7 - (2015-04-06)

  • set format on x2Axis for focus

0.13.6 - (2015-04-06)

  • add support for focusEnable

  • remove linePlusBarWithFocusChart as this is replaced by linePlusBarChart with option FocusEnable(): http://nvd3-community.github.io/nvd3/examples/documentation.html#linePlusBarChart

  • Sourcing JS assets over https when appropriate

0.13.5 (2014-11-13)

  • Fix: color_list extra arguments is not mandatory on piechart

0.13.0 (2014-08-04)

  • User Jinja2 to create the JS charts

0.11.0 (2013-10-09)

  • allow chart_attr to be set as follow 'xAxis': '.rotateLabels(-25)' this will turn into calling chart.xAxis.rotateLabels(-25)

0.11.0 (2013-10-09)

  • date setting is replaced by x_is_date
  • refactoring

0.10.2 (2013-10-04)

  • discreteBarChart support date on xAxis

0.10.1 (2013-10-03)

  • Remove $ sign in linePlusBarWithFocusChart

0.10.0 (2013-10-02)

  • Support new chart linePlusBarWithFocusChart

0.9.0 (2013-09-30)

  • Use Bower to install D3 and NVD3

0.8.0 (2013-08-15)

  • add NVD3Chart.buildcontent() by cmorgan (Chris Morgan)
  • Add show_labels parameter for Piechart by RaD (Ruslan Popov)

0.7.0 (2013-07-09)

  • Generalise the axis_formatting & add support for hiding the legend by nzjrs (John Stowers)
  • Fix #7 from DanMeakin, wrong str conversion of x-axis dates

0.6.0 (2013-06-05)

  • Add AM_PM function for x-axis on lineChart

0.5.2 (2013-05-31)

  • ScatterChat option to pass 'size': '10' as argument of the series
  • Fix in setup.py for python3

0.5.1 (2013-05-30)

  • Fix multiChart with date

0.5.0 (2013-05-28)

  • Add color_list option on piechart

0.4.1 (2013-05-06)

  • Fix removed forced sorted on x-axis

0.4.0 (2013-04-28)

  • Add support for Python3

0.3.6 (2013-04-24)

  • Add custom dateformat var for tooltip

0.3.5 (2013-04-23)

  • Fix style

0.3.4 (2013-04-23)

  • Support for px and % on height and width
  • Add tag_script_js property to disable tag