Detailed explanation of how to generate beautiful SVG images in python using Pygal

高洛峰
Release: 2017-02-13 16:23:58
Original
3770 people have browsed it

Preface

SVG can be regarded as the most popular image file format at present. Its full English name is Scalable Vector Graphics, which means scalable vector graphics. It is based on XML (Extensible Markup Language) and developed by the World Wide Web Consortium (W3C) alliance. Strictly speaking, it should be an open standard vector graphics language that allows you to design exciting, high-resolution web graphics pages. Users can directly use code to depict images, open SVG images with any word processing tool, make the images interactive by changing part of the code, and insert them into HTML at any time for viewing through a browser.

First Head in Pygal

First install pygal:

pip install pygal
Copy after login

If If you want to set the generated format to a format other than svg, such as png, jpg, etc., you need to install the following libraries:

pip install lxml
Copy after login

In In Ubuntu, you can install it according to the following prompts:

sudo apt-get install libxml2-dev libxslt1-dev python-dev
sudo apt-get install python-lxml
pip install cairosvg
Copy after login

The principle of installing this library is the same as above:

sudo apt-get install python-cairosvg
Copy after login

The following two libraries only need normal pip installation:

pip install tinycss

pip install cssselect
Copy after login

##Hello SVG

import pygal              
bar_chart = pygal.Bar()           
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]) 
bar_chart.render_to_file('Hello.svg')
Copy after login

The black Hello.svg file is generated. Because it is in svg format, it cannot be opened directly. Select the default browser to open it, and you will see it. It looks like this below:

Detailed explanation of how to generate beautiful SVG images in python using Pygal

A cooler picture:

import pygal
line_chart = pygal.Line()
line_chart.title = 'Browser usage evolution (in %)'
line_chart.x_labels = map(str, range(2002, 2013))
line_chart.add('Firefox', [None, None, 0, 16.6, 25, 31, 36.4, 45.5, 46.3, 42.8, 37.1])
line_chart.add('Chrome', [None, None, None, None, None, None, 0, 3.9, 10.8, 23.8, 35.3])
line_chart.add('IE',  [85.8, 84.6, 84.7, 74.5, 66, 58.6, 54.7, 44.8, 36.2, 26.6, 20.1])
line_chart.add('Others', [14.2, 15.4, 15.3, 8.9, 9, 10.4, 8.9, 5.8, 6.7, 6.8, 7.5])
line_chart.render_to_file('Hello_line_chart.svg')
Copy after login

The generated picture is as follows This looks like:

Detailed explanation of how to generate beautiful SVG images in python using Pygal

Hello PNG

Sometimes, we don’t need svg, only png format charts, It doesn’t matter, pygal can also do it:

import pygal
bar_chart = pygal.Bar()
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
bar_chart.render_to_file('bar_chart.svg')
# 生成 png 格式图表
bar_chart.render_to_png(filename='bar_chart.png')
Copy after login

Pay attention to the green mark and successfully generate the image in png format:

Detailed explanation of how to generate beautiful SVG images in python using Pygal

Hello Flask and Pygal

Let the svg format images generated by Pygal be displayed on your web page. We choose flask to provide web support:

pip install flask
Copy after login

The core code is as follows, yes it is that short:

import pygal
from flask import Flask, Response

app = Flask(__name__)

@app.route('/')
def index():
 return 
"""
 <html>
 <body>
  <h1>hello pygal and flask</h1>
  <figure>
  <embed type="image/svg+xml" src="/hellosvg/" />
  </figure>
 </body>
 </html>&#39;
"""

@app.route(&#39;/hellosvg/&#39;)
def graph():
 """ render svg graph """
 bar_chart = pygal.Bar()
 bar_chart.add(&#39;Fibonacci&#39;, [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
 return Response(response=bar_chart.render(), content_type=&#39;image/svg+xml&#39;)

if __name__ == &#39;__main__&#39;:
 app.run()
Copy after login

Open 127.0. 0.1:5000 you can see the following:

Detailed explanation of how to generate beautiful SVG images in python using Pygal

Of course, you can also make the following more cool svg images, but all of them are pygal Usage:

Detailed explanation of how to generate beautiful SVG images in python using Pygal

For more detailed explanations on how to use Pygal to generate beautiful SVG images in Python, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template