目录
简介
首先简单介绍一下 SimpleStart 是利用Python语言开发网页和实现数据可视化的Python工具包,和Streamlit 很类似。但是它最显著的不同是基于事件驱动的,所以数据更新时不会刷新整个页面。
关于它的详细使用,请参考我的系列介绍 Python - SimpleStart 写网页的系列介绍
今天我们要用 SimpleStart 实现kaggle上的公开数据库"120年奥运记录"。
1. 关于奥运数据库
Kaggle 上的 "120 years of Olympic history: athletes and results" 数据集包含了从1896年到2016年夏季奥运会和冬季奥运会的数据记录。这个数据集提供了关于运动员、奖牌、国家或地区、运动项目等方面的详细信息,可以用于进行奥运会数据分析和可视化。
数据集中包含的字段(列)包括运动员姓名、国家或地区代码、性别、年龄、身高、体重,以及获得的奖牌情况等信息。你可以利用这些数据进行各种类型的分析,比如探索历届奥运会的参赛人数、国家的奖牌榜、运动员的表现等等。
通过分析这个数据集,你可以发现一些有趣的趋势和模式,比如不同国家地区在不同运动项目上的优劣势、运动员的年龄分布对成绩的影响等等。这个数据集是一个很好的资源,可以帮助你深入了解奥运会的历史记录和发展趋势。
2. 安装 SimpleStart 开发环境
安装很简单, pip3 install simplestart
然后利用编辑器,我个人用jupyter 创建一个代码文件 app.py
先写2行简单代码
import simplestart as ss
ss.write("Hello")
然后执行命令 ss app.py, 打开浏览器地址 http://localhost:8000, 就可以看到网页了
3. 布局设计实现
这里有一个基于 Streamlit 开发的这个数据库的可视化分析,本文的实战是利用 SimpleStart 模仿这个代码,实现同样的功能。你可以发现, SimpleStart 开发的过程和 Streamlit 是很类似的,但数据更新的时候不会刷新整个页面。
这个例子是单页面网页应用,它通过 sidebar 侧边栏来实现不同功能的数据展示。
通过它的侧边栏,我们看到主要展示部分有4个功能
- Medal Tally 即奖牌榜, 选中这个选项的时候,在侧边栏的下方还有按照年代和国家地区对奖牌数据进行过滤
- Overall Analysis 即总体数据分析,有关于国家地区、举办城市数量、项目和每个运动项目的最成功的运动员数据等
- Country Analysis 即按照国家或地区的分析,包括奖牌数、参赛项目和最佳运动员数据
- Athlete Analysis 即运动员数据的分析,包括奖牌数目的年龄分布和男女运动员数量的比例变化
所有这些功能主要以表格或者图表方式展现。
那么怎么用 SimpleStart 实现侧边栏呢?
mysidebar = ss.sidebar() 就可以了。我们从简单原型开始说明,参考下面代码
import simplestart as ss
# 侧边栏的功能选项
func_options = ["Medal Tally", "Overall Analysis","Region Analysis","Athlete Analysis"]
# 创建侧边栏
sidebar = ss.sidebar()
with sidebar:
ss.write("#### Olympic Data Analysis")
ss.image("./media/images/olympics1.png")
# 标题
ss.write("### Select An Option")
ss.radio(func_options, value="Medal Tally", inline = False, onchange=radio_change)
# 需要加大间距的时候就用这句
ss.space()
# 创建占位空间
mytabs = ss.tabs(func_options, show_tab_title = False)
with mytabs[0]:
ss.write("this is tab 1")
with mytabs[1]:
ss.write("this is tab 2")
with mytabs[2]:
ss.write("this is tab 3")
with mytabs[3]:
ss.write("this is tab 4")
运行后,应该能看到侧边栏出现了4个功能选项,点击功能选项的时候,都会执行函数radio_change,这里面会处理不同的数据展示。
我们创建tabs标签页的原因是它可以用来展示不同的内容,处理显示与隐藏也很方便。
主页的工作区域我们也创建了一个tabs, 用来显示不同的功能选项的结果。
4. 其它说明
其它的代码逻辑和Streamlit版本是一样的,建议参考 github 上的这个网址,https://github.com/udhavvvv-dev/Olympic-Data-Analysis
它是用 streamlit 开发的,在线演示 ( 可能访问比较慢 )
里面有详细的介绍,我们只是用SimpleStart重做了一遍。