创建交互式数据仪表板可能感觉有点吓人。
尤其是如果你不熟悉前端技术,比如 HTML/CSS/JS 这些。
但如果你仅用Python就能创建一个功能完善且可以直接投入生产的数据科学仪表板呢?
进入 Taipy,一个开源库 Taipy,它简化了创建数据应用的过程。
在这个教程中,Mariya Sha 将带你使用 Taipy 和 Plotly,并利用来自 Kaggle 的数据集来构建一个股票价值的仪表盘。
我们的应用程序将从零开始动态过滤数据,并展示图表,同时处理用户的输入。
准备好了吗?那咱们开始吧!
此处省略部分内容
步骤 1:设置环境
首先,我们需要创建一个新的Python环境。如果你使用Conda,可以这样设置:
在这里我们创建一个名为ds_env的conda环境,并指定使用Python 3.11版本。
conda create -n ds_env python=3.11
接下来激活我们刚刚创建的环境。
conda activate ds_env
安装taipy、pandas和plotly库。
pip install taipy pandas plotly
进入全屏 退出全屏
复制此项目的资源:
在终端中运行以下命令:
git clone https://github.com/MariyaSha/data_science_dashboard.git
进入 data_science_dashboard/starter_files 文件夹
完成以上步骤后,你就可以开始使用 data_science_dashboard
了。
全屏模式(点击退出)
这将作为我们的项目根目录。里面你会找到图片、原型图和一个Python文件(main.py
)以开始。
第二步:使用 Taipy 来设计图形用户界面
咱们在应用程序中添加一个头部和一个 logo。打开 main.py 并开始编码:
import taipy.gui as tgb
with tgb.page("股票看板"):
# 添加一个logo
tgb.image("images/icons/logo.png", width="10vw")
# 添加一个标题
tgb.text("# 标普500指数的股票价值随时间变化", mode="md")
点击全屏显示 点击退出全屏
运行你的应用程序。
运行 taipy run main.py
命令 (运行 taipy
框架中的 main.py
脚本)
全屏 退出全屏
访问 http://localhost:5000,你就能看到你的基本应用界面了。
步骤 3:添加用户输入
如果你想按日期筛选数据,可以添加一个日期范围选择器。
import datetime
dates = [datetime.date(2023, 1, 1), datetime.date(2024, 1, 1)]
with tgb.page("股票盘表"):
# 已有元素...
# 添加日期选择器
tgb.date_range(
value="{}",
label_start="开始",
label_end="结束",
)
切换到全屏 退出全屏
第 4 步:动态数据处理利用 Taipy
让我们根据用户输入动态加载数据集并进行过滤。
import pandas as pd
# 读取股票数据
stock_data = pd.read_csv("data/sp500_stocks.csv")
def filter_data(state, name, value):
if name == "dates":
start, end = state.dates
将 start 和 end 赋值为 state.dates 中的值
filtered_data = stock_data[
(stock_data["Date"] >= str(start)) &
(stock_data["Date"] <= str(end))
]
将过滤后的数据赋值给 state.filtered_data
tgb.add_callback("filter_data", filter_data)
全屏模式 退出全屏
步骤五:数据的可视化
最后来,我们用Plotly画一下数据。
import plotly.graph_objects as go
def create_chart(data):
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=data["Date"],
y=data["High"],
name="Stock Value",
mode="lines"
)
)
return fig
with tgb.page("股票仪表盘"):
# 当前的元素...
# 显示图
tgb.chart(figure="{create_chart(filtered_data)}")
全屏,退出全屏
最后的想法
就这样,你已经做到了!
你已经使用Taipy搭建了一个股票盘面,实现了动态用户输入和数据可视化——而且完全不需要写一行HTML、CSS或JavaScript代码。
想再往前走走吗?
探索 Taipy 场景,以实现更动态的后端交互。查看 Taipy 的官方 GitHub 仓库,并为他们的开源项目作出贡献。
PS:你可以点击这里观看视频教程 https://www.youtube.com/watch?v=hxYIpH94u20&feature=youtu.be。