『Plotly实战指南』--Plotly与Streamlit结合实战

打印 上一主题 下一主题

主题 1775|帖子 1775|积分 5325

关于Streamlit的介绍,可参考《玩转Streamlit》系列
在当今数据驱动的时代,快速构建交互式工具并直观地将数据分析结果交付给用户,已成为数据应用开发的核心需求。
无论是企业内部的决策支持系统,还是面向公众的数据可视化平台,都需要一种高效且灵活的开发方式。
Plotly和Streamlit的结合,正是满意这一需求的完善解决方案。
Plotly作为一个强大的交互式图表库,支持多种图表类型,可以或许轻松创建动态且美观的可视化结果。
而 Streamlit 是一个轻量级、低代码的 Web 应用框架,专注于简化数据应用的开发流程,让开发者可以或许快速构建并摆设交互式应用。
二者的互补性显而易见:

  • Plotly:支持 40+ 交互式图表类型,从基础折线图到 3D 曲面图包罗万象
  • Streamlit:用纯 Python 脚本即可创建 Web 应用,摆设时间从数周缩短到数小时
本文主要介绍怎样结合Plotly和Streamlit开发动态数据应用,并优化其性能。
1. Streamlit应用中嵌入Plotly图表

1.1. 静态图表嵌入

将Plotly图表嵌入Streamlit应用的基础方法是通过st.plotly_chart()函数直接渲染Plotly图表。
这种方式简单直接,可以或许快速将图表展示在页面上。
以下是一个将折线图热力图嵌入 Streamlit 页面的示例代码:
  1. import streamlit as st
  2. import plotly.express as px
  3. import pandas as pd
  4. # 创建一个简单的折线图
  5. df = pd.DataFrame({"x": [1, 2, 3, 4, 5], "y": [10, 11, 12, 13, 14]})
  6. line_fig = px.line(df, x="x", y="y", title="折线图示例")
  7. # 创建一个热力图
  8. heatmap_data = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9]})
  9. heatmap_fig = px.imshow(heatmap_data, title="热力图示例")
  10. # 在 Streamlit 中展示图表
  11. st.plotly_chart(line_fig)
  12. st.plotly_chart(heatmap_fig)
复制代码

1.2. 图表与组件交互

Plotly图表的强大之处不仅在于其静态展示本领,更在于其动态交互性
通过结合Streamlit的交互组件(如st.slider和st.selectbox),可以实现图表参数的动态控制,从而为用户提供更加灵活的可视化体验。
以下是一个案例,展示怎样通过用户选择的日期范围实时更新K 线图
[code]import streamlit as stimport plotly.graph_objects as goimport pandas as pd# 获取K线数据data = pd.read_parquet(    r"/path/to/BTC-USDT_1h.parquet")# 创建日期范围选择器start_date = st.date_input("开始日期", value=data["candle_begin_time"].min())end_date = st.date_input("结束日期", value=data["candle_begin_time"].max())# 根据选择的日期范围筛选数据filtered_data = data.query(    "candle_begin_time >= @start_date & candle_begin_time

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表