1. 引言
- 目的:探讨如何使用 Superset 处理股票数据并进行可视化分析。
- 背景:提及之前相关博客,提供背景和上下文。
2. 为什么选择 Superset 和 ECharts
2.1 选择 Superset 的理由
- 优势:
- 开源且功能强大,支持多种数据源。
- 提供灵活的仪表盘和图表定制能力。
- 不重新开发 BI 工具的原因:
- 开发成本高,时间长。
- Superset 已成熟,社区支持广泛。
2.2 选择 ECharts 的理由
- 特点:
- 轻量且高效,支持丰富的图表类型。
- 与 Superset 集成良好。
- 选择原因:
- 开源且由 Apache 基金会支持。
- 易于二次开发和定制。
3. Superset 和 ECharts 的介绍
3.1 Superset 简介
- 历史和背景:由 Airbnb 发起,现为 Apache 顶级项目。
- 主要功能和特点:
- 数据探索、仪表盘创建、SQL 编辑器等。
3.2 ECharts 简介
- 来源和发展:由百度开发,后捐献给 Apache 基金会。
- 主要功能和特点:
- 支持动态交互图表、跨平台渲染等。
4. 部署 Superset
4.1 使用 Docker Compose 部署
- 优势:
- 简化部署流程,环境一致性强。
- 修改 Docker Compose 文件:
- 调整配置文件以适应股票数据处理需求。
4.2 部署步骤
- 准备工作:
- 安装 Docker 和 Docker Compose。
- 获取 Superset 官方镜像。
- 配置 Docker Compose:
- 修改
docker-compose.yml
文件。 - 设置数据库连接和端口映射。
- 修改
- 启动服务:
- 运行命令并验证部署成功。
4.3 我用到的部署代码
docker-compose.yml version: "3" services: db: image: postgres:16 container_name: superset_db restart: always environment: POSTGRES_DB: superset POSTGRES_USER: superset POSTGRES_PASSWORD: superset # 生产环境请使用强密码 volumes: - db_data:/var/lib/postgresql/data redis: image: redis:7 container_name: superset_redis restart: always superset: image: lutinglt/superset-zh container_name: superset hostname: superset restart: always depends_on: - db - redis ports: - 8080:8088 volumes: - ./superset_config.py:/app/pythonpath/superset_config.py - superset_home:/app/superset_home environment: SUPERSET_SECRET_KEY: your_secret_key_here # volumes: db_data: superset_home:
5. 数据源获取
5.1 怎么获取
- 股票数据来源:
- 主要是通过雅虎的yfinance API
- 数据准备过程:
- 先获取标普五百成分股作为tic
- 再用yfinance API下载数据
- 增加我需要的技术指标
- 数据获取
上图节选自另一个项目
5.2 部分数据展示
6. 数据分析和可视化
6.1 使用的主要图表类型
- 时间序列折线图:
- 时间粒度:日/月,展示股价趋势。
- 柱状图:
- 用于比较不同股票的表现。
- 分区图:
- 显示股票类别分布。
- 饼图:
- 展示持仓比例或收益构成。
- 时间序列阶梯图:
- 表示股价阶段性变化。
- 时间序列图表:
- 结合多维度数据分析。
- 热力图:
- 显示股票相关性或波动性。
- 箱线图:
- 分析股价波动范围和异常值。
7. 结果展示
- 具体结果:
未交互 直观展示
选中MSFT
- 意义和价值:
纵向来说:我能通过折线图很好跟踪指定股票收盘价随时间变化情况;通过联系折线图与柱状图得到收盘价与成交量之间的关系;通过热力图看恐慌指数与成交量的相关关系等等.
横向来说:我能通过分区图总览大盘成交量分布,通过折线图横向比较选中股票变化趋势等等.
8. Superset 插件开发
8.1 Superset 插件简介
Superset用到了多种插件,包括echarts
8.2 以echarts图表为例
说白了这是前端开发相关内容,通过研究该示例(热力图)能够明白superset这个BI如何调用echarts组件