Skip to main content

renders pyecharts output as image

Project description

https://api.travis-ci.org/pyecharts/pyecharts-snapshot.svg?branch=master https://codecov.io/gh/pyecharts/pyecharts-snapshot/branch/master/graph/badge.svg

Introduction

pyecharts-snapshot renders the output of pyecharts as a png, jpeg, gif, svg image or a pdf file at command line or in your code.

Please be aware of its dependency on phantom.js.

Usage

Get png:

$ snapshot render.html

And you will get:

https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/images/demo.png

Get pdf:

$ snapshot render.html pdf

And you will get:

https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/images/demo_in_pdf.png

And here the code to generate it

Get svg:

$ 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.

Usage details

Command line options:

$ snapshot output.html [png|jpeg|gif|svg|pdf] delay_in_seconds

where delay_in_seconds tells pyexcel-snapshot to take a snapshot after delay_in_seconds. It is needed only when your snapshot is partial because the chart animation takes long than 0.5 second(default).

Programmatical usage is simple:

...
somechart.render(path='cool_snapshot.png')  # delay=1) for 1 second delay

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

Example programs

Here’s a fully working example code to get a png image:

# coding=utf-8
from __future__ import unicode_literals
from pyecharts import Bar

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
bar = Bar("柱状图数据堆叠示例")
bar.add("商家A", attr, v1, is_stack=True)
bar.add("商家B", attr, v2, is_stack=True)
bar.render(path='snapshot.png')

Here is the snapshot:

https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/images/snapshot.png

In order to get a pdf file, you can do the following instead:

# coding=utf-8
from __future__ import unicode_literals

from pyecharts import Line, Pie, Grid, configure

configure(output_image=True)

line = Line("折线图示例", width=1200)
attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
line.add("最高气温", attr, [11, 11, 15, 13, 12, 13, 10],
         mark_point=["max", "min"], mark_line=["average"])
line.add("最低气温", attr, [1, -2, 2, 5, 3, 2, 0], mark_point=["max", "min"],
         mark_line=["average"], legend_pos="20%")
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie("饼图示例", title_pos="45%")
pie.add("", attr, v1, radius=[30, 55],
        legend_pos="65%", legend_orient='vertical')

grid = Grid()
grid.add(line, grid_right="65%")
grid.add(pie, grid_left="60%")
grid.render(path='snapshot.pdf')

Here is the snapshot in pdf:

https://raw.githubusercontent.com/pyecharts/pyecharts-snapshot/master/images/snapshot_in_pdf.png

Coffee

Please buy me a coffee if you think this library helped.

Installation

Tools dependencies

Please install a node.js binary to your operating system. Simply download the tar ball, extract it and place its bin folder in your PATH.

Next, you will need to issue a magic command:

$ npm install -g phantomjs-prebuilt

At the end, please verify if it is there:

$ which phantomjs

On windows, please try:

C: > phantomjs

If you see it there, continue. Otherwise, start from the beginning, ask for help or thank you for your attention.

Package installation

You can install it via pip:

$ pip install pyecharts-snapshot

or clone it and install it:

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

Test status

Fully tested on pypy, python 2.7, 3.3, 3.4, 3.5 and 3.6.

Constraints

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

Design Considerations

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

  2. Puppeteer: too big to download. Dropped

Maintenance Instructions

  1. install pyecharts-snapshot

  2. make demo

  3. take screenshots of grid.pdf and snapshot.pdf in examples folder

Contributors in alphabetical order

  1. chengjiandong

  2. chfw Author

Change log

0.1.5 - 11.04.2018

Updated

  1. better error verbose when phantomjs fails to generate output

0.1.4 - 26.03.2018

Added

  1. Tighter integration with pyecharts 0.4.2. SnapshotEnvironment extends the rendering capability of pyecharts

  2. #16: phantomjs check fails on windows

  3. #14: if the output file name has a path, this library fails over

0.1.3 - 12.03.2018

Added

  1. svg support for pyecharts 0.4.0

0.1.2 - 21.12.2017

Updated

  1. #9: delay 1.5 seconds

0.1.1 - 17.12.2017

Updated

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

0.1.0 - 15.12.2017

Updated

  1. support Mac OS Retina display, high resolution screenshots

0.0.11 - 2.11.2017

Updated

  1. #7: helpful error message on missing phantomjs.

0.0.10 - 23.10.2017

Updated

  1. pyexcel pyexcel#105, remove gease from setup_requires, introduced by 0.0.9.

0.0.9 - 21.10.2017

Updated

  1. #6: show better

0.0.8 - 08.09.2017

Updated

  1. #5: fix

0.0.7 - 26.08.2017

Updated

  1. Save the output of pyecharts to gif file

0.0.6 - 25.08.2017

Updated

  1. 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. #1: Support

0.0.3 - 19.08.2017

Updated

  1. Remove download image arrow on the output file

0.0.2 - 18.08.2017

Added

  1. Save the output of pyecharts to pdf file

0.0.1 - 17.08.2017

Added

  1. Save the output of pyecharts to png file

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyecharts-snapshot-0.1.5.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyecharts_snapshot-0.1.5-py2.py3-none-any.whl (12.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyecharts-snapshot-0.1.5.tar.gz.

File metadata

File hashes

Hashes for pyecharts-snapshot-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2c85e2567465be3dd547f2b60c4788b8cc8fac892e3612a6ef37efdc02b53c14
MD5 056c1b7c61038573774bf43a7ad61f8b
BLAKE2b-256 83eed9c514722954c94f5d12cdcc930599c0283be9b21accad164dd2a21b3cbd

See more details on using hashes here.

File details

Details for the file pyecharts_snapshot-0.1.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyecharts_snapshot-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 10ed73dff6271b5dacc294995432abf8169118227a1eb71fea95e47abb41de79
MD5 f08764012d70077fd1e7f4f2d2b6cbce
BLAKE2b-256 6773fff93a3a7f9b720d60ddfb792f16b053cd6919e0b6a7f7e2fed54183ffbd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page