# Web前端设计大赛项目 **Repository Path**: fang_se_bin/python-final-project ## Basic Information - **Project Name**: Web前端设计大赛项目 - **Description**: https://fang_se_bin.gitee.io/python-final-project/ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: https://fang_se_bin.gitee.io/python-final-project/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-01-05 - **Last Updated**: 2024-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Web前端设计大赛项目 ## 一.项目名称 ### 1.1项目名称 | 项目 | 择地 | | :----: | :---- | | 名称 | 如何选择你未来的城市 | | 作用 | 为即将毕业/已经毕业的大学生提供未来居住地的选择分析 | | 数据来源 | [国家数据库](http://data.stats.gov.cn/) | | 项目人| 方泽斌 | ### 1.2价值宣言 对于即将毕业和刚刚毕业正在迈入社会的大学生而言,独自生活工作的未来较为陌生,对于心仪的工作的省份/城市不熟悉不了解,无法轻易作出抉择,还在学习的学生对于工作地的选择有一定的想法,但对于其他未涉足过的省份不了解但又充满好奇,对此痛点,本项目为即将毕业/已经毕业的大学生提供未来居住地的选择分析就尤为必要。帮助年轻人了解不同的省份情况,提供更有价值的分析说明。 ### 1.3项目流程图 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/204542_46379c25_5329186.png "数据流程图.png") ## 二.问题表述 ### 2.1 为什么要做? 对于即将毕业和刚刚毕业正在迈入社会的大学生而言,独自生活工作的未来较为陌生,对于心仪的工作的省份/城市不熟悉不了解,无法轻易作出抉择,即使有相关的数据,但因为数据的庞大与复杂,他们无从下手去找到自己所需要的数据,有路径但走不通的问题就需要数据分析的出现来帮助用户打通这条路,帮助他们通过分析所得出的数据,得到自己想要的结果。 ### 2.2解决谁的问题 解决即将毕业,但对于未来将居住的工作/生活生活不够了解的同学的问题;解决刚刚迈入社会需要换个地方生活的工作者的问题。 ### 2.3 核心价值与用户痛点 企图解决的用户痛点: 1. 对于被迫选择的陌生的省份不够了解 2. 获取省份相关数据并进行分析较为困难 3. 没有清晰易懂的数据对各省份间的数据进行展示 4. 对于经济发展有追求但不知道该省份的其他条件如何 5. 想了解省份的基础设施建设是否完善 | 核心价值 | 用户痛点 | |:------:|:------:| | 帮助数据使用者了解陌生的省份 | 不够了解陌生的省份 | | 对比跟省份间的各种指标 | 无法获取省份数据进行对比 | | 清晰的数据展示 | 看不懂大量繁杂的数据 | | 综合的分析总结 | 追求经济但不对其他条件有顾虑 | | 深入分析各省份基础建设 | 想了解省份的基础设施建设是否完善| ### 2.4 用户画像 - 准备迈入工作生活的毕业生,对于心仪的工作的省份不够熟悉不了解,无法轻易作出抉择 - 还在学习的学生对于工作地的选择有一定的想法,但对于其他未涉足过的省份不了解但又充满好奇 | 信息 | 画像1 | | :----: | :---- | | 姓名 | 宋敏 | | 年龄 | 22岁 | | 职业 | 毕业生未入职 | | 人物简介 | 刚刚毕业对于未来的工作生活充满了憧憬与向往,热爱生活,性格开朗 | | 用户痛点 | 不想在一直生活的城市工作却又不知道如何选择 | | 信息 | 画像2 | | :----: | :---- | | 姓名 | 白龙 | | 年龄 | 20岁 | | 职业 | 大二学生/短视频博主 | | 人物简介 | 喜欢记录和分享生活,在平台上发布自己的短视频作品后收获了人气,毕业后希望继续从事新媒体行业,喜欢重庆 | | 用户痛点 | 喜欢某各省份但对于这个省份的了解不够,也想和其他省份作出对比 | ### 2.5使用场景 数据为即将大学毕业或于近期毕业的准社会工作者分析出几大热门就业城市的各项指标,可应用于: - 各大院校的毕业季,帮助对社会工作有一定的迷茫与无助心理的同学,给予他们最全面客观的指导 - 有多家分公司在不同地区的热门就业公司,为实习生提供不同工作地区的选择 ### 2.6价值主张画布 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/212850_12c0572e_5329186.png "价值主张画布.png") ## 三.解决方案表述 ### 3.1整体项目规划 1.先确定数据故事,从国家统计局网站找数据源,确定下来研究的数据 2.pyecharts将数据进行可视化操作 3.运用前端框架boostrap,将pyecharts可视化图形嵌入到框架中去,架构一个完整的数据展示型网站 4.将项目部署到云端 ### 3.2运用到的python语言基础知识点 | 程序结构 | 输入输出 | 运算 | 数据类型 | 条件语句 | 循环语句 | 文件处理 | 函数 | | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | | 导入模块import | 输入input | +-*/ | 列表 | if else | for循环 | open() | def | | 变量定义debug | 输出print | == | 字典 | while | | read() | 参数传递 | | 函数定义def | | and or | 序列通用操作 | | | write() | return | | 主程序Flask(__name__) | | | 数据类型强制转换 | | | | | ### 3.3 数据流程图 数据分析项目将从国家数据库中得到的数据进行粗加工处理,利用pandas库对所导入的数据进行进一步的处理,将所得结果制成清晰的可视化图标对所得的结果进行分析总结,为使用者提供切实可行的建议。 - [数据流程图](https://www.processon.com/view/link/5f05652e7d9c084420522b2e) ![数据流程图](https://images.gitee.com/uploads/images/2020/0723/185520_9dd6da9a_4866566.png "data.png") ### 3.4 IDEO三要素 - Viability商业可行性 通过完善数据内容,形成初期的完整的分析文档,向周边在校大学生及师兄师姐进行推广,吸引用户使用并提出意见与建议,对用户提出的痛点进行修改反馈,后期稳步完善后有机会与相关省份城市进行推广合作,从中获取商业价值。 - Feasibility技术可行性 - 数据挖掘 因并未修数据挖掘课程,因此只能从[国家数据库](http://data.stats.gov.cn/)获取现有的数据 - 数据清理 可行,经过一个学期对于pandas的学习,初步掌握了相关技术 - 制表方法 可行,课程中的学习与互联网提供的帮助 - Desirability用户可欲性 对于即将毕业和刚刚毕业正在迈入社会的大学生而言,独自生活工作的未来较为陌生,对于心仪的工作的省份/城市不熟悉不了解,无法轻易作出抉择,还在学习的学生对于工作地的选择有一定的想法,但对于其他未涉足过的省份不了解但又充满好奇,用户需要一个提供未来居住地的选择分析来帮助年轻人了解不同的省份情况,提供更有价值的分析说明。 ## 四.编程功能的基本描述 ### 4.1项目板块变成思路 **1. 导入模块** 1.导入pandas模块(一个强大的分析结构化数据的工具集) -有关pandas的学习可以参考[pandas官方中文文档](https://www.pypandas.cn/) 2.导入pyecharts模块(专门适用于python结合Echarts的数据可视化的模块) -关于地图绘制有帮助的文档:[pycharts官方文档](https://pyecharts.org/#/) ``` In[1]import pandas as pd ``` ``` In[2]from pyecharts.charts import Geo from pyecharts.faker import Faker from pyecharts import options as opts from pyecharts.charts import Geo from pyecharts.globals import ChartType, SymbolType ``` **2. 数据读取** 读取来源于国家统计局的数据 有关pandas的数据读取的学习[Python数据分析库pandas--pandas数据读写](https://www.cnblogs.com/dan-baishucaizi/p/9398801.html),感谢分享! ``` df = pd.read_excel("省份选择.xlsx", encoding="utf8", sep="\t")#读取数据表 df.head() ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/194529_953c1267_5329186.png "数据读取.png") **3. 数据整理** 分析比较各年份地区的地区生产总值 可供参考的agg的使用方法python3 [关于agg函数的用法](https://blog.csdn.net/qq_24753293/article/details/80323487) 可供参考的groupby函数使用方法python中[groupby函数详解](https://www.cnblogs.com/Yanjy-OnlyOne/p/11217802.html) 可供参考的pivot的使用,感谢分享![python pandas库——pivot使用心得](https://blog.csdn.net/qq_29118049/article/details/78804768) ``` # A-1 採用进阶分进合击分析策略 groupby ... agg ... pivot 分进合击进阶pv = df.groupby(by= ["地区","年份"]) \ .agg({"地区生产总值(亿元)":"sum"}) \ .reset_index() \ .set_index(["地区"]) \ .pivot(columns="年份", values="地区生产总值(亿元)") print (分进合击进阶pv.shape) 分进合击进阶pv ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/194634_c7dfc9aa_5329186.png "数据整理.png") **4. 洪涝等灾害受灾面积概览** 有关pyecharts的使用教程:Python可视化神器——pyecharts的超详细使用指南!,感谢分享! 可供参考:pyecharts的相关说明文档 参考文章: [Python可视化神器——pyecharts的超详细使用指南!](https://www.jianshu.com/p/554d64470ec9) [pyecharts](http://pyecharts.herokuapp.com/) ``` from pyecharts.faker import Faker from pyecharts import options as opts from pyecharts.charts import Page, Pie l1 = ["河北省", "陕西省", "内蒙古自治区", "辽宁省","青海省","甘肃省",] num =[1678, 576.2, 1280.3, 620.1,57.9,701.3] c = ( Pie() .add( "", [list(z) for z in zip(l1, num)], radius=["40%", "65%"], # 圆环的粗细和大小 ) .set_global_opts( title_opts=opts.TitleOpts(title="洪涝、山体滑坡、泥石流和台风受灾面积(千公顷)",pos_right= 'center',pos_left= 'center'), legend_opts=opts.LegendOpts( orient="vertical", pos_top="20%", pos_left="20%" # 左面比例尺 ), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) c.render_notebook() c.render("洪涝等灾害受灾面积概览.html") ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/194936_bdb34a6f_5329186.png "受灾面积.png") **5.地震多发地区受灾次数概览** 有关python 中条形图绘制,感谢分享! 参考文章:[python 中条形图绘制](https://www.cnblogs.com/LiErRui/articles/11580851.html) ``` from pyecharts import options as opts from pyecharts.charts import Bar from random import randint def bar_series() -> Bar: c = ( Bar() .add_xaxis(["四川", "西藏自治区", "云南", "新疆维吾尔自治区","青海省"]) .add_yaxis("预警次数", [11,7,16,22,5]) .set_global_opts(title_opts=opts.TitleOpts(title="地震多发地区受灾次数",pos_left= '20%',pos_right='50%')) ) return c bar_series().render_notebook() bar_series().render("地震多发地区受灾次数概览.html") ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/195147_7d85148c_5329186.png "受灾次数2.png") **6.年末常住人口** 有关利用Python绘制南丁格尔图,感谢分享! 参考文章:[利用Python绘制南丁格尔图](https://blog.csdn.net/qq_42169061/article/details/105267022) ``` import pandas as pd from pyecharts.charts import Pie from pyecharts import options as opts color_series = ['#1fa2ff','#45b1ff','#7dc9ff','#33dbff','#6de5ff', '#329e71','#45b888','#3dd395','#3dd395','#3dd395','#3dd395'] sh = ["北京市","天津市","河北省","辽宁省","黑龙江省","上海市","江苏省","山东省","河南省","广东省"] num = [2171,1557,7520,4369,3789,2418,8029,10006,9559,11169] 二级 = pd.DataFrame({'sh': sh, 'num': num}) 二级.sort_values(by='num', ascending=False, inplace=True) v = 二级['sh'].values.tolist() d = 二级['num'].values.tolist() pie1 = Pie(init_opts=opts.InitOpts(width='1000px', height='600px')) pie1.set_colors(color_series) # 添加数据,设置饼图的半径,是否展示成南丁格尔图 pie1.add("", [list(z) for z in zip(v, d)], radius=["36%", "100%"], center=["50%", "60%"], rosetype="area" ) pie1.set_global_opts(title_opts=opts.TitleOpts(title='2017年', subtitle='年末常住人口', title_textstyle_opts=opts.TextStyleOpts(font_size=25,color= '#0085c3'), subtitle_textstyle_opts= opts.TextStyleOpts(font_size=30,color= '#003399'), pos_right= 'center',pos_left= 'center',pos_top= '53%',pos_bottom='center' ), legend_opts=opts.LegendOpts(is_show=False), toolbox_opts=opts.ToolboxOpts()) pie1.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=18, formatter="{b}:{c}万人", font_style="italic", font_weight="bold", font_family="Microsoft YaHei" ), ) pie1.render('2017年年末常住人口.html') ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/195512_5432fd71_5329186.png "年末常住人口2.png") **7.城镇单位就业人员平均工资** 有关漏斗图制作参考链接,感谢分享! 参考文章:[python绘制漏斗图步骤详解](https://www.jb51.net/article/157296.htm) ``` from pyecharts import options as opts from pyecharts.charts import Funnel, Page from random import randint shs =['北京市', '天津市', '上海市', '河南省', '重庆市', '广东省', '海南省', '河北省', '山西省', '内蒙古自治区'] values =[131700,94534,129795,55495,70889,79183,67727,63036,41501,66679] def funnel_base() -> Funnel: c = ( Funnel() .add("元", [list(z) for z in zip(attr,values)]) .set_global_opts( title_opts=opts.TitleOpts(title="城镇单位就业人员平均工资(元)",pos_right= 'center',pos_left= 'center',pos_top='5%'), legend_opts=opts.LegendOpts( orient="vertical", pos_top="30%", pos_left="3%" # 左面比例尺 ),) ) return c funnel_base().render_notebook() funnel_base().render('城镇单位就业人员平均工资漏斗图.html') ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/195632_a6c55bcc_5329186.png "平均年工资2.png") **8.出生率与死亡率概述** 有关饼状图制作参考链接,感谢分享! 参考文章:[pyecharts饼状图制作](https://gallery.pyecharts.org/#/Pie/pie_radius) ``` shss = ["北京市", "天津市", "上海市", "河南省", "重庆市","广东省","海南省", "河北省", "山西省","内蒙古自治区"] radar_birth = [[9.06, 7.65, 11.06, 8.1, 12.95, 11.18, 13.68, 14.73, 13.2, 9.47]] c = ( Pie() .add( "", [list(z) for z in zip(l1, num)], radius=["0", "60%"], # 圆环的粗细和大小 ) .set_global_opts( title_opts=opts.TitleOpts(title="2017年不同省出生率",pos_right= 'center',pos_left= 'center'), legend_opts=opts.LegendOpts( orient="vertical", pos_top="20%", pos_left="20%" # 左面比例尺 ), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) c.render_notebook() c.render("2017年不同省出生率概览.html") ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/195905_91eb438e_5329186.png "出生率.png") ``` shss = ["北京市", "天津市", "上海市", "河南省", "重庆市","广东省","海南省", "河北省", "山西省","内蒙古自治区"] radar_death = [[5.3, 5.05, 5.45, 5.3, 6.97, 7.27, 4.52, 6.01, 6.6, 5.74]] c = ( Pie() .add( "", [list(z) for z in zip(l1, num)], radius=["0", "60%"], # 圆环的粗细和大小 ) .set_global_opts( title_opts=opts.TitleOpts(title="2017年不同省死亡率",pos_right= 'center',pos_left= 'center'), legend_opts=opts.LegendOpts( orient="vertical", pos_top="20%", pos_left="20%" # 左面比例尺 ), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) c.render_notebook() c.render("2017年不同省死亡率概览.html") ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/195959_9ec7c11b_5329186.png "死亡率.png") ### 4.2可能需要的学习成本   所有代码中涉及到的知识主要包括python和html两大部分,占比如下: | | PYTHON | HTML5 | | :----: | :----: | :----: | | 代码量 | 30% | 70% | | 实现项目的功能 | 85% | 15% | | 所占用的学习时间 | 80% | 20% | | 逻辑难度(理解难度) | 4星 | 1星 | | 操作难度 | 3星 | 2星 | * 本项目总计**10个页面**,Python所用到的具体知识点已在每一步详细说明中给出,包括编程功能描述与人文相关的逻辑思考。 ## 五.云端项目部署的基本描述 [python数据展示型期末项目链接](https://fang_se_bin.gitee.io/python-final-project/) https://fang_se_bin.gitee.io/python-final-project/ ### 5.1页面结构图 1.[登录界面https://fang_se_bin.gitee.io/python-final-project/index.html](https://fang_se_bin.gitee.io/python-final-project/index.html) ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/163201_2823504d_5329186.png "用户登录.png") 本项目登录界面用了一只可爱的熊猫来做登录界面,用户输入密码时,熊猫自动捂住眼睛,生动形象,增加了用户的可欲性 2.[数据总故事https://fang_se_bin.gitee.io/python-final-project/%E4%B8%80.html](https://fang_se_bin.gitee.io/python-final-project/%E4%B8%80.html) ![数据总故事](https://images.gitee.com/uploads/images/2021/0122/162133_90a07d26_5329186.png "数据总故事.png") 本项目从全国各省市年末常住人口、人口出生率与死亡率、城镇单位平均年工资、自然灾害等方面来阐述全国不同地区的情况,为迎接毕业生选择就业所在地提供参考 3.[年末常住人口https://fang_se_bin.gitee.io/python-final-project/%E4%BA%8C.html](https://fang_se_bin.gitee.io/python-final-project/%E4%BA%8C.html) ![年末常住人口](https://images.gitee.com/uploads/images/2021/0122/162250_4cf285ce_5329186.png "年末常住人口.png") 2017年年末城镇常住人口:广东省在2017年年末城镇常住人口最多,大多最求自我发展的年轻人都有向广东省迁移奋斗的冲动 4.[出生率与死亡率https://fang_se_bin.gitee.io/python-final-project/%E4%B8%89.html](https://fang_se_bin.gitee.io/python-final-project/%E4%B8%89.html) ![输入图片说明](https://images.gitee.com/uploads/images/2021/0122/162421_15d6a34d_5329186.png "出生率与死亡率.png") 2017年不同省出生率概览:内蒙古自治区的出生人口最多,分析得知与其地广人稀的特性有关,内蒙古自治区的死亡人口最多,死亡率与出生率通常成正相关,这样才能使这个省份的人口变化起伏平稳 5.[城镇单位平均年工资https://fang_se_bin.gitee.io/python-final-project/%E5%9B%9B.html](https://fang_se_bin.gitee.io/python-final-project/%E5%9B%9B.html) ![平均年工资](https://images.gitee.com/uploads/images/2021/0122/162624_b80b25b6_5329186.png "平均年工资.png") 城镇单位就业人员平均工资:北京的城镇单位就业人员平均工资,所以向往在北京工作的同学的工资会有更大的发展空间 6.[受灾面积https://fang_se_bin.gitee.io/python-final-project/%E4%BA%94.html](https://fang_se_bin.gitee.io/python-final-project/%E4%BA%94.html) ![受灾面积](https://images.gitee.com/uploads/images/2021/0122/162835_9f852d57_5329186.png "自然灾害.png") 洪涝等灾害受灾面积概览:河北省的洪涝等灾害受灾面积最大,强降雨等天气也会对毕业生的选择产生影响 7.[受灾次数https://fang_se_bin.gitee.io/python-final-project/%E4%BA%94.html](https://fang_se_bin.gitee.io/python-final-project/%E4%BA%94.html) ![受灾次数](https://images.gitee.com/uploads/images/2021/0122/162933_36986159_5329186.png "受灾次数.png") 地震多发地区受灾次数概览:新疆维吾尔自治区的地震次数较多,甚至超过了四川,因此对于此地的选择需要有强大的应急心理 8.[总结与建议https://fang_se_bin.gitee.io/python-final-project/%E5%85%AD.html](https://fang_se_bin.gitee.io/python-final-project/%E5%85%AD.html) ![总结与建议](https://images.gitee.com/uploads/images/2021/0122/163026_1671a0f9_5329186.png "总结与建议.png") 本项目从多个方面阐述了全国各省市的情况,解决即将毕业,但对于未来将居住的工作/生活生活不够了解的同学的问题和刚刚迈入社会需要换个地方生活的工作者的问题。 ### 5.2精简介绍该项目的云端功能和部署心得 本项目的第一部署位置是在代码托管平台码云(gitee),只需要把整个项目的文件夹放到自己账号的仓库下,再点击码云的服务-Gitee Pages,选择强制使用https,然后点击启动,稍等片刻,平台就会给出一个配置好的网站地址,点击这个网站域名,即可看到自己的网站展示,此方法操作比较简单。 部署过程中遇到的问题: 1.在第一次上传自己的本地网站项目到Gitee平台时,平台配置出来的网站展示显示中文乱码,我这才意识到编码方式要用UTF-8,这也让我明白了上课时老师为什么总是让我们打代码的时候要习惯性地打赏编码方式为UTF-8,通过这次项目,让我明白了UTF-8的重要性。 2.要想网站正常显示出来,其中网站第一个显示的页面的命名要为“index.html”,这样网站才能正常显示出来,否则就是显示400 ## 6.学习/实践心得总结及感谢 ### 6.1**总结** 我想对在同行/同侪说:本项目具体实践中,我确实有很多的心得与体会,作为一个项目的分析者,要时时刻刻站在“以人为本”,只有站在人文的角度思考,对于数据的分析与理解才会有意义,才能帮助用户解决痛点,这些数字、文本、符号才有它们独特的意义。就此次的数据分析而言,数据分析的流程只是一些代码、方法的运用,而数据分析背后的含义才是数据分析真正的价值所在:它帮助我们更清晰直观地看到数据的含义,看到一个个数据所带来的信息,让我们在数字化高度发展的时代,以一种更便捷快速且清晰有趣的方式,得到对人、对社会、对世界的思考。 感谢 我的代码可供同行/同侪们参考 感谢辛苦许老师和其他老师们,感谢帅哥美女们的耐心教导 感谢同学们对我的项目的指导与建议,一起加油⛽️ 感谢网络的力量让我在迷茫的时候给我提供帮助,感谢愿意分享自己经验的大佬们 最后,设计思维及数据思维的融合的”混合心智模型”让我对于数据的分析有了更深刻的想法与理解,对于数据的处理与分析需要以人为本,要站在用户的角度去思考去发现,要更贴近用户所需,在普遍用户群拥有的痛点基础上,进行对筛选出的数据的分析处理,设计出方便用户理解的图表,最终产生了符合用户需求的分析文档。 ### 6.2参考文章链接 1、[黄杰琪师兄的python项目](http://nfue.top/word/1) 2、[pyecharts-gallery](https://gallery.pyecharts.org/#/Geo/geo_lines_background) 3、[pandas官方中文文档](https://www.pypandas.cn/) 4、[pycharts官方文档](https://pyecharts.org/#/) 5、[关于agg函数的用法](https://blog.csdn.net/qq_24753293/article/details/80323487) 6、[groupby函数详解](https://www.cnblogs.com/Yanjy-OnlyOne/p/11217802.html) 7、[python pandas库——pivot使用心得](https://blog.csdn.net/qq_29118049/article/details/78804768) 8、[Python可视化神器——pyecharts的超详细使用指南!](https://www.jianshu.com/p/554d64470ec9) 9、[pyecharts](http://pyecharts.herokuapp.com/) 10、[python 中条形图绘制](https://www.cnblogs.com/LiErRui/articles/11580851.html) 11、[利用Python绘制南丁格尔图](https://blog.csdn.net/qq_42169061/article/details/105267022) 12、[python绘制漏斗图步骤详解](https://www.jb51.net/article/157296.htm) 13、[pyecharts饼状图制作](https://gallery.pyecharts.org/#/Pie/pie_radius) 14、[Python中的迭代](https://www.cnblogs.com/xken/p/8910609.html) 15、[Python知识结构图](https://blog.csdn.net/sunflowerduidui/article/details/51794317) 16、[markdown语法之表格](https://blog.csdn.net/qq_33229669/article/details/81611322) 17、[深圳市政府数据开放平台:](https://opendata.sz.gov.cn/) 18、[HTML
action 属性](https://www.runoob.com/tags/att-form-action.html) 19、、[CSS实现垂直居中的5种方法](https://www.qianduan.net/css-to-achieve-the-vertical-center-of-the-five-kinds-of-methods/) 20、[CSS background-color 属性](https://www.w3school.com.cn/cssref/pr_background-color.asp)