Skip to content
Beautiful charting of pandas.DataFrame with Highcharts
Jupyter Notebook Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
pandas_highcharts Added a test for sort_index Dec 28, 2015
.coveralls.yml Added coveralls.yml Jun 23, 2015
.gitignore Updated gitignore Jun 23, 2015
.travis.yml Removed 2.6 support Dec 28, 2015
CONTRIBUTING.rst Added tox environments for testing. Aug 31, 2015
LICENSE Initial commit Jan 2, 2015
MANIFEST.in Added tox environments for testing. Aug 31, 2015
README.rst Fix #25 Sep 2, 2015
example.ipynb Fix #26 Sep 2, 2015
requirements.txt Added coveralls in travis.yml Jun 23, 2015
setup.py Update setup.py Mar 22, 2017
tox.ini Removed 2.6 support Dec 28, 2015

README.rst

pandas-highcharts

https://travis-ci.org/gtnx/pandas-highcharts.svg?branch=master

What is it

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

Motivation

  • pandas is the best tool to handle data in Python
  • pandas is able to produce matplotlib plots. They work pretty well but have two major drawbacks
    • Not very web friendly
    • Pretty ugly
  • Highcharts produce nice, interactive plot in your browser and is very complete

Features

  • Same interface as DataFrame.plot
  • Following parameters are handled
    • data
    • x
    • y
    • kind
    • figsize
    • use_index
    • title
    • grid
    • legend
    • style
    • logx
    • logy
    • loglog
    • xticks
    • yticks
    • xlim
    • ylim
    • rot
    • fontsize
    • position
    • stacked
    • sort_columns
    • secondary_y
    • mark_right
  • Following parameters are not handled (yet) :
    • ax
    • ay
    • subplots
    • sharex
    • sharey
    • layout
    • colormap
    • colorbar
    • layout
    • table
    • yerr
    • xerr
    • kwds
  • You can specify those specific highcharts parameters:
    • tooltip
  • Static files (highcharts.js) are not embedded

Installation

Install the package using pip

pip install pandas-highcharts

Usage

Import it in your views

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

In your templates

<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:

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))
You can’t perform that action at this time.