目录
一、实战场景
实战场景:如何绘制桑基图分析人口流动和年龄数据
二、主要知识点
三、菜鸟实战
马上安排!
1、创建 python 文件
"""
Author: 菜鸟实战
实战场景: 如何绘制桑基图分析人口流动和年龄数据
"""
# 导入系统包
import platform
import json
from flask import Flask, render_template
from pyecharts import options as opts
from pyecharts.charts import *
print("Hello,菜鸟实战")
print("实战场景: 如何绘制桑基图分析人口流动和年龄数据 \n")
web = Flask(__name__)
# 构建数据,读取json数据
with open("product.json", "r", encoding="utf-8") as f:
j = json.load(f)
def sankey_charts() -> Sankey():
# 实例化对象
sankey = Sankey()
sankey.add(
"",
nodes=j["nodes"],
links=j["links"],
pos_top="10%",
# 每个桑基图矩形的宽度
node_width=30,
# 桑基图中每一列任意两个矩形节点之间的间隔
node_gap=12,
is_draggable=True,
layout_iterations=5,
itemstyle_opts=opts.ItemStyleOpts(border_width=2, border_color="#aaa"),
linestyle_opt=opts.LineStyleOpts(opacity=0.8, curve=0.5, color='source'),
label_opts=opts.LabelOpts(position='right'),
)
# 全局置标题、标签
sankey.set_global_opts(
title_opts=opts.TitleOpts(title="如何绘制桑基图分析人口流动和年龄数据", subtitle="菜鸟实战,坚持学习!"),
)
return sankey
# 获取对象
p = sankey_charts()
# 绘制图形。path为指定路径,生成HTML文件的一个路径
p.render('./templates/sankey_charts.html')
# 添加路由显示图表
@web.route('/')
def index():
return render_template('sankey_charts.html')
if __name__ == "__main__":
# 运行项目
web.run(debug=False)
print("Python 版本", platform.python_version())
2、运行结果
Hello,菜鸟实战
实战场景: 如何绘制桑基图分析人口流动和年龄数据* Serving Flask app 'py041' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit
菜鸟实战,持续学习!