gtnx / pandas-highcharts

Beautiful charting of pandas.DataFrame with Highcharts
MIT License
244 stars 62 forks source link

pandas-highcharts

.. image:: https://travis-ci.org/gtnx/pandas-highcharts.svg?branch=master :target: https://travis-ci.org/gtnx/pandas-highcharts .. image:: https://coveralls.io/repos/gtnx/pandas-highcharts/badge.svg :target: https://coveralls.io/r/gtnx/pandas-highcharts

What is it

pandas-highcharts is a Python package which allows you to easily build Highcharts plots with pandas.\ DataFrame_ objects.

Motivation

Features

Installation

Install the package using pip

.. code:: shell

pip install pandas-highcharts

Usage

Import it in your views

.. code:: python

import pandas_highcharts
df = ... # create your dataframe here
chart = pandas_highcharts.serialize(df, render_to='my-chart', output_type='json')

In your templates

.. code:: html

<div id="my-chart"></div>
<script type="text/javascript">
  new Highcharts.Chart({{chart|safe}});
</script>

Contributing

See CONTRIBUTING.rst for information on how to contribute to pandas-highcharts.

More examples

Some examples are available on nbviewer_.

Please read the doc for DataFrame.plot_.

For example, with the following dataset:

.. code:: python

import pandas as pd
from pandas_highcharts.core import serialize
from pandas.compat import StringIO
dat = """ts;A;B;C
2015-01-01 00:00:00;27451873;29956800;113
2015-01-01 01:00:00;20259882;17906600;76
2015-01-01 02:00:00;11592256;12311600;48
2015-01-01 03:00:00;11795562;11750100;50
2015-01-01 04:00:00;9396718;10203900;43
2015-01-01 05:00:00;14902826;14341100;53"""
df = pd.read_csv(StringIO(dat), sep=';', index_col='ts', parse_dates='ts')

# Basic line plot
chart = serialize(df, render_to="my-chart", title="My Chart")
# Basic column plot
chart = serialize(df, render_to="my-chart", title="Test", kind="bar")
# Basic column plot
chart = serialize(df, render_to="my-chart", title="Test", kind="barh")
# Plot C on secondary axis
chart = serialize(df, render_to="my-chart", title="Test", secondary_y = ["C"])
# Plot on a 1000x700 div
chart = serialize(df, render_to="my-chart", title="Test", figsize = (1000, 700))

.. _Highcharts plots: http://www.highcharts.com/ .. _pandas: https://github.com/pydata/pandas .. _DataFrame: http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.html .. _DataFrame.plot: http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.plot.html .. _nbviewer: http://nbviewer.ipython.org/github/gtnx/pandas-highcharts/blob/master/example.ipynb