pyecharts-snapshot-pro 0.2.9
renders pyecharts output as image
License: MIT
Keywords: python,echarts,visualisation,data,utility,png,jpeg,svg,pdf,pyecharts,chart,playwright

================================================================================
pyecharts-snapshot
================================================================================

.. image:: https://api.travis-ci.org/pyecharts/pyecharts-snapshot.svg
   :target: http://travis-ci.org/pyecharts/pyecharts-snapshot

.. image:: https://codecov.io/github/pyecharts/pyecharts-snapshot/coverage.png
   :target: https://codecov.io/github/pyecharts/pyecharts-snapshot
.. image:: https://badge.fury.io/py/pyecharts-snapshot.svg
   :target: https://pypi.org/project/pyecharts-snapshot

.. image:: https://pepy.tech/badge/pyecharts-snapshot/month
   :target: https://pepy.tech/project/pyecharts-snapshot/month

.. image:: https://img.shields.io/github/stars/pyecharts/pyecharts-snapshot.svg?style=social&maxAge=3600&label=Star
    :target: https://github.com/pyecharts/pyecharts-snapshot/stargazers

.. image:: https://img.shields.io/static/v1?label=continuous%20templating&message=%E6%A8%A1%E7%89%88%E6%9B%B4%E6%96%B0&color=blue&style=flat-square
    :target: https://moban.readthedocs.io/en/latest/#at-scale-continous-templating-for-open-source-projects

.. image:: https://img.shields.io/static/v1?label=coding%20style&message=black&color=black&style=flat-square
    :target: https://github.com/psf/black


News - 16.04.2019
================================================================================

Since 0.2.0, NO LONGER, phantomjs is required! NO LONGER, it supports python 2.7

BUT, the capability to render pyecharts in a script has been merged into
pyecharts 1.0.0. And the dependency on phantomjs has been sprawn as:
`snapshot-phantomjs <https://github.com/pyecharts/snapshot-phantomjs>`_ .

If you love to use 'snapshot' command line, please continue to use this
project. 

Introduction
================================================================================

pyecharts-snapshot renders the output of pyecharts/echarts.js as a png, jpeg,
gif, eps, svg image, raw base64 encoding or a pdf file at command line.


Usage
================================================================================

Get png:

.. code-block:: bash

   $ snapshot render.html

And you will get:

.. image:: https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/images/demo.png
   :width: 800px

Get pdf:

.. code-block:: bash

   $ snapshot render.html pdf

And you will get:

.. image:: https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/images/demo_in_pdf.png
   :target: https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/examples/grid.pdf
   :width: 800px

And here the code to `generate it <https://github.com/pyecharts/pyecharts-snapshot/blob/master/examples/grid.py>`_


Get svg:

.. code-block:: bash

   $ snapshot render.html svg

Please be aware that `render.html` should have configure echarts to do svg rendering. This library, being
stupid, does not make canvas rendered image as svg rendered. Here is `an example svg file <https://github.com/pyecharts/pyecharts-snapshot/master/exampless/cang-zhou.svg>`_.


Usage details
--------------------------------------------------------------------------------

Command line options::

   $ snapshot output.html [png|jpeg|gif|svg|pdf] [delay] [pixel ratio]

where:

`delay` tells pyecharts-snapshot to take a snapshot after
some time measured in seconds. It is needed only when your snapshot is partial because the chart
animation takes long than 1.5 second(default).
`pixel ratio` tells pyecharts-snapshot to use a different pixel ratio when generate
the image. It defaults to 2.


Programmatical usage is simple:

.. code-block:: python

   ...
   somechart.render(path='cool_snapshot.png')  # delay=1, pixel_ratio=3) 1 second delay, 3 as pixel ratio

where delay as an optional parameter can be given to specify `delay_in_seconds`.

Coffee
================================================================================

Please buy `me a coffee <http://pyecharts.org/#/zh-cn/donate>`_ if you think this library helped.


Installation
================================================================================


You can install pyecharts-snapshot via pip:

.. code-block:: bash

    $ pip install pyecharts-snapshot


or clone it and install it:

.. code-block:: bash

    $ git clone https://github.com/pyecharts/pyecharts-snapshot.git
    $ cd pyecharts-snapshot
    $ python setup.py install


And you need to do:

.. code-block:: bash

   $ pyppeteer-install

.. note::

   pyppeteer-install is recommended but optional. Your first ever run of
   **snapshot** command will invoke pyppeteer-install. This command will
   download `Chrominium <https://www.chromium.org>`_,
   `about 100MB <https://github.com/miyakogi/pyppeteer#usage>`_

Test status
================================================================================

Fully tested on 3.6, 3.7 and 3.8-dev.

Constraints
================================================================================

Only one image at a time. No 3D image support

Design Considerations
================================================================================

#. Ghost.Py: very hard to install on my own. Dropped


Maintenance Instructions
================================================================================

#. install pyecharts-snapshot
#. make demo
#. take screenshots of grid.pdf and snapshot.pdf in examples folder


docker image: arm use firfox is ok
================================================================================

.. code-block:: bash

   FROM mcr.microsoft.com/playwright/python:v1.28.0-focal
   RUN apt install gcc python3-dev libhdf5-dev -y  # psutils

Contributors in alphabetical order
================================================================================


#. `chengjiandong <https://github.com/chenjiandongx>`_
#. `chfw <https://github.com/chfw>`_ Author

Change log
================================================================================

0.2.0 - 17.04.2019
--------------------------------------------------------------------------------

**Added**

#. use pyppeteer, pythonic puppeteer for rendering pyecharts image

**Removed**

#. python 2, 3.5- support
#. no more phantomjs dependency
#. programmatic rendering capability is removed. NO longer it is integrated with
   pyecharts

0.1.10 - 16.12.2018
--------------------------------------------------------------------------------

**Added**

#. `#33 <https://github.com/pyecharts/pyecharts-snapshot/issues/33>`_: Support
   base64 encoding

0.1.9 - 13.11.2018
--------------------------------------------------------------------------------

**Added**

#. Support eps

**Updated**

#. Loosen the requirement on lml

0.1.8 - 12.09.2018
--------------------------------------------------------------------------------

**Fixed**

#. `#28 <https://github.com/pyecharts/pyecharts-snapshot/issues/28>`_:
   pixel_ratio as a parameter

0.1.7 - 31.05.2018
--------------------------------------------------------------------------------

**Fixed**

#. `#23 <https://github.com/pyecharts/pyecharts-snapshot/issues/23>`_: phantomjs
   on windows does not like absolute path but file uri formatted ones

0.1.6 - 16.05.2018
--------------------------------------------------------------------------------

**Updated**

#. use system temp file instead of current working folder for tmp files

0.1.5 - 11.04.2018
--------------------------------------------------------------------------------

**Updated**

#. better error verbose when phantomjs fails to generate output

0.1.4 - 26.03.2018
--------------------------------------------------------------------------------

**Added**

#. Tighter integration with pyecharts 0.4.2. SnapshotEnvironment extends the
   rendering capability of pyecharts
#. `#16 <https://github.com/pyecharts/pyecharts-snapshot/issues/16>`_: phantomjs
   check fails on windows
#. `#14 <https://github.com/pyecharts/pyecharts-snapshot/issues/14>`_: if the
   output file name has a path, this library fails over

0.1.3 - 12.03.2018
--------------------------------------------------------------------------------

**Added**

#. svg support for pyecharts 0.4.0

0.1.2 - 21.12.2017
--------------------------------------------------------------------------------

**Updated**

#. `#9 <https://github.com/pyecharts/pyecharts-snapshot/issues/9>`_: delay 1.5
   seconds

0.1.1 - 17.12.2017
--------------------------------------------------------------------------------

**Updated**

#. higher resolution screenshots for all platforms: windows and linux.

0.1.0 - 15.12.2017
--------------------------------------------------------------------------------

**Updated**

#. support Mac OS Retina display, high resolution screenshots

0.0.11 - 2.11.2017
--------------------------------------------------------------------------------

**Updated**

#. `#7 <https://github.com/pyecharts/pyecharts-snapshot/pull/7>`_: helpful error
   message on missing phantomjs.

0.0.10 - 23.10.2017
--------------------------------------------------------------------------------

**Updated**

#. pyexcel `pyexcel#105 <https://github.com/pyecharts/pyexcel/issues/105>`_,
   remove gease from setup_requires, introduced by 0.0.9.

0.0.9 - 21.10.2017
--------------------------------------------------------------------------------

**Updated**

#. `#6 <https://github.com/pyecharts/pyecharts-snapshot/pull/6>`_: show better

0.0.8 - 08.09.2017
--------------------------------------------------------------------------------

**Updated**

#. `#5 <https://github.com/pyecharts/pyecharts-snapshot/pull/5>`_: fix

0.0.7 - 26.08.2017
--------------------------------------------------------------------------------

**Updated**

#. Save the output of pyecharts to gif file

0.0.6 - 25.08.2017
--------------------------------------------------------------------------------

**Updated**

#. Allow user to specify a custom delay period in seconds. Default is 0.5s

0.0.5 - 22.08.2017
--------------------------------------------------------------------------------

0.0.4 - 19.08.2017
--------------------------------------------------------------------------------

**Updated**

#.  `#1 <https://github.com/pyecharts/pyecharts-snapshot/pull/1>`_: Support

0.0.3 - 19.08.2017
--------------------------------------------------------------------------------

**Updated**

#. Remove download image arrow on the output file

0.0.2 - 18.08.2017
--------------------------------------------------------------------------------

**Added**

#. Save the output of pyecharts to pdf file

0.0.1 - 17.08.2017
--------------------------------------------------------------------------------

**Added**

#. Save the output of pyecharts to png file