SVG(可伸缩矢量图形)是一种图像格式,它以XML格式定义了基于矢量的图形。 在本教程中,您将了解如何开始使用Pygal(Python SVG图形绘图库)。
安装Pygal没有依赖性。 它适用于Python 2.7+。 假设您已在系统上安装了Python和pip,请使用pip安装Pygal。
pip install pygal
如果要使用最新版本的Pygal,请查看
Pygal GitHub存储库
并进行克隆。
创建条形图
数据可视化以图表或图形的形式解释了我们所拥有的信息。 在本教程中,您将看到如何使用Python Flask Web应用程序内的Pygal库创建条形图。 让我们从创建一个简单的flask Web应用程序开始。 首先,如果尚未安装flask,请安装它:
pip install flask
创建一个名为
app.py
的文件,并添加以下代码:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Tutsplus : Welcome to PyGal Charting Library !! "
if __name__ == "__main__":
app.run()
假设我们有某些年份的年度标记列表数据。 数据将为JSON格式。 这是JSON数据的示例:
"year": 2000,
"mark": 85
"year": 2001,
"mark": 75
"year": 2002,
"mark": 65
"year": 2003,
"mark": 95
"year": 2004,
"mark": 85
"year": 2005,
"mark": 55
您将在X轴上显示
Year
,在Y轴上显示
Mark
。 因此,让我们开始为Python应用程序创建一条新路由:
@app.route("/bar")
def bar():
# Charting code will be here
您将从JSON文件加载数据,因此需要将
json
库和
pygal
库一起导入。
import pygal
import json
通过以读取模式打开文件来读取JSON数据,然后加载JSON数据。
with open('bar.json','r') as bar_file:
data = json.load(bar_file)
从
pygal
库创建
Bar
对象。
chart = pygal.Bar()
拥有图表对象后,需要设置X轴和Y轴。 为了在Y轴上添加标记,我们将从JSON数据对象中以列表形式读取标记。
mark_list = [x['mark'] for x in data]
同样,从JSON数据对象中读取年份作为列表。
[x['year'] for x in data]
将X轴和Y轴数据分配给图表对象。
chart.add('Annual Mark List',mark_list)
chart.x_labels = [x['year'] for x in data]
现在,您需要将条形图SVG图像渲染到文件中。 在Python Flask中,静态文件位于一个名为
static
的文件夹中,因此请在项目目录中创建一个名为
static
的文件夹。 在
static
文件夹内,创建文件夹
images
。 添加以下代码行以将SVG图像呈现到文件中。
chart.render_to_file('static/images/bar_chart.svg')
在项目目录中创建一个
template
文件夹。 在
template
目录中,创建一个名为
app.html
的文件。 将以下HTML代码添加到
app.html
文件中:
<title> Tutsplus - Pygal Charting Library</title>
</head>
<h2> Tutsplus - Pygal Charting Library</h2>
<p>Bar Chart</p>
<object type="image/svg+xml" data="{
{image_url}}">
Your browser does not support SVG
</object>
</body
</html>
您将在
app.html
文件中呈现我们的条形图。 最后,您需要做的就是渲染模板以及
image_url
参数,该参数将用作元素的
data
。 这是完整的
/bar
路线和方法:
# -------------------------------------------
# Charting route which displays the bar chart
# -------------------------------------------
@app.route("/bar")
def bar():
with open('bar.json','r') as bar_file:
data = json.load(bar_file)
chart = pygal.Bar()
mark_list = [x['mark'] for x in data]
chart.add('Annual Mark List',mark_list)
chart.x_labels = [x['year'] for x in data]
chart.render_to_file('static/images/bar_chart.svg')
img_url = 'static/images/bar_chart.svg?cache=' + str(time.time())
return render_template('app.html',image_url = img_url)
我已将查询字符串
cache
添加到
img_url
以防止图像从浏览器缓存中加载。
保存以上更改,然后尝试运行该应用程序:
python app.py
将浏览器指向
http:// localhost:5000 / bar
,您应该能够基于JSON数据查看条形图。
要显示锦标赛数据的条形,您需要获取锦标赛得分的列表并将其添加到条形图对象中。
tourn_list = [x['tournament'] for x in data]
chart.add('Tournament Score',tourn_list)
保存以上更改,然后重新启动服务器。 将您的浏览器指向
http:// localhost:5000 / bar
,您应该已经绘制了条形图。
您还可以向条形图添加自定义样式。 例如,要更改条形颜色,您需要导入Pygal样式。
from pygal.style import Style
如图所示定义自定义样式,以为条形指定颜色并为图表指定背景色。
custom_style = Style(
colors=('#991515','#1cbc7c'),
background='#d2ddd9'
创建条形图对象时,将自定义样式应用于图表。
chart = pygal.Bar(style = custom_style)
保存以上更改,然后重新启动服务器。 将浏览器指向http:// localhost:5000 / bar ,您应该能够在屏幕上呈现具有自定义样式的条形图。
在本教程中,您了解了如何开始使用Pygal(Python SVG图形绘图库)。 您学习了如何使用Pygal在Python Flask应用程序中创建条形图。 您了解了如何向条形图中添加多个条形图以及如何自定义条形图样式。
您所看到的只是冰山一角,而使用Pygal可以做更多的事情。 我建议阅读Pygal官方文档以获取详细信息。
此外,不要犹豫,看看我们可以在Envato Market上出售和研究的东西 ,也不要犹豫,使用下面的提要来问任何问题并提供宝贵的反馈。
该教程的源代码可在GitHub上获得 。
翻译自: https://code.tutsplus.com/tutorials/intro-to-pygal-a-python-svg-charts-creator--cms-27692
SVG(可伸缩矢量图形)是一种图像格式,它以XML格式定义了基于矢量的图形。 在本教程中,您将了解如何开始使用Pygal(Python SVG图形绘图库)。 入门 安装Pygal没有依赖性。 它适用于Python 2.7+。 假设您已在系统上安装了Python和pip,请使用pip安装Pygal。 pip install pygal 如果要使用最新版本的Pygal,请查看Pygal Gi...
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, e
Pygal 是另一个简单易用的数据图库,它以面向对象的方式来创建各种数据图,而且使用 Pygal 可以非常方便地生成各种格式的数据图,包括 PNG、SVG 等。使用 Pygal 也可以生成 XML etree、HTML 表格(这些都需要安装其他包)。
Pygal模块安装
安装 Pygal 包与安装其他Python包基本相同,同样可以使用 pip 来安装。
启动命令行窗口,在命令行窗口中输...
使用pygal绘图的流程就是先生成一张空的画布,之后在画布上添加数据。
一、使用pygal绘图一些基本参数的配置
示例代码的设计思想:使用pygal绘制一个关于豆瓣TOP250 2-5页信息的柱状图,往chart.add('',data_lst)中传入的data_lst是个列表嵌套字典的数据,每个字典中包含下面三个信息:
豆瓣Top250每页的电影数
对豆瓣Top250每页链接的描述
豆瓣Top250 2-
列表 [] 用来储存成组信息,其中包含按特定顺序排列起来的元素
访问列表元素元素:指出列表名称,元素索引,并将其放在方括号内
第一个列表元素的索引为0而不是1,第二个列表的索引为1 (要访问列表的任何元素,都可将其位置减1,并将结果作为索引结果)最后一个元素将索引指定为-1,倒数第二个-2
##3.2
修改列表元素:指定列表名、要修改的元素索引,再指定该元素的新值
添加元素:末尾添加 .append()
任意位置.insert()
删除元素:del 知道元素位置,可指定位置【】
flask+react1.搭建后台安装flask安装virtualenv
创建后台文件2.搭建前台1.init在Flask后台中运行前台程序1.build目录2.配置到服务
器
1.搭建后台
安装flask
pip3 install flask
安装virtualenv
virtualenv是一个用于
创建虚拟环境的脚本。可以让不同的项目使用自己的一套环境,避免项目间的冲突或者与本地环境的冲突。
一般提及数据可视化,会Python的读者朋友可能第一时间想到的就是matplotlib模块或者是seaborn模块,而谈及绘制动态图表,大家想到的比较多的是Plotly或者是Pyecharts。
注:文末提供Python数据可视化交流群,群内高手如云
今天小编来为大家介绍另外一个绘制动态图表的模块 pygal,使用起来非常的便捷,而且绘制出来的图表也是十分的精湛好看,相比较seaborn等常用的模块相比,该模块的优点有:
高度可定制,而且用法简单
图表可交互性强
图像可导出SVG格式(矢量图形)
3. 在VS Code中打开设置,方法是点击左侧侧边栏的齿轮图标,然后选择“设置”选项。
4. 在设置搜索栏中输入“
python.linting.enabled”,然后找到
Python配置部分。
5. 确保“
Python: Linting: Enabled”设置已启用,这将启用VS Code的
Python代码检查功能。
6. 在设置搜索栏中输入“
python.linting.pylintEnabled”,然后找到
Python配置部分。
7. 确保“
Python: Linting: Pylint Enabled”设置已启用,这将启用Pylint进行代码检查。
8. 在VS Code中
创建一个新的
Python文件,例如`example.py`。
9. 在`example.py`文件中导入
Pygal模块并使用它来
创建图表,例如:
```
python
import
pygal
#
创建一个柱状图
bar_chart =
pygal.Bar()
bar_chart.add('Series 1', [1, 3, 2, 5, 4])
# 渲染
图表并保存为
SVG文件
bar_chart.render_to_file('chart.
svg')
10. 使用Ctrl + Shift + P(或者在macOS上使用Cmd + Shift + P)打开命令面板,然后输入“
Python: Run
Python File in Terminal”并选择该选项来运行
Python代码。
11. 运行代码后,将在项目文件夹中生成一个名为`chart.
svg`的
SVG图表文件。
这样,您就可以在VS Code中配置和使用
Pygal来
创建各种类型的
图表了。请注意,这只是一个基本的配置示例,您可以根据自己的需求进行更多的定制。