# city_dashboard **Repository Path**: Chester_Xue/city_dashboard ## Basic Information - **Project Name**: city_dashboard - **Description**: 雅安市城市运行管理实时态势大屏 — Streamlit + Plotly + Pandas - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-02 - **Last Updated**: 2026-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🏙️ 雅安市城市运行管理实时态势大屏 基于 **Streamlit + Plotly + Pandas** 构建的轻量级城市运行管理可视化仪表盘,模拟展示雅安市下辖 8 个区县的城市管理案件实时态势。 ## 📸 功能概览 | 模块 | 说明 | |------|------| | 📊 **KPI 指标卡** | 今日上报数、今日结案数、待处置案件、总结案率、平均处置时长 | | 📋 **案件类型分布** | 饼图展示 6 类案件(市容环境/市政设施/园林绿化/街面秩序/宣传广告/突发事件)占比 | | 🏛️ **区县案件排行** | 横向条形图,雨城、名山等 8 区县案件量一目了然 | | 🗺️ **案件地理分布** | 双Tab:离散点分布(红=未结案/绿=已结案)+ 区县汇总气泡图(open-street-map 免Token瓦片) | | 📈 **30 天上报趋势** | 带填充区域的 spline 折线图,缺值自动补零 | | 🔥 **交叉热力图** | 案件类型 × 处置状态矩阵分析 | | ⏱️ **处置效率排行** | 各区县平均处置时长排行 + 结案率颜色编码 | | 🎛️ **多维筛选器** | 侧边栏自由筛选:日期范围、区县、案件类型、处置状态 | | 📋 **数据明细表** | 可展开表格,自定义显示列,支持 CSV 下载 | | 🔄 **自动刷新** | 可选每 30 秒自动重载数据 | ## 🧱 技术栈 | 组件 | 方案 | |------|------| | 后端/服务 | Python 3.8+ + **Streamlit** | | 图表 | **Plotly**(交互式矢量图) | | 地图 | Plotly Scattermapbox + **open-street-map**(免 Token,低内存) | | 数据 | Pandas + CSV(内存计算,免数据库) | | 部署 | 纯 Python 环境,无需 Node.js / Nginx | ## 🚀 快速启动 ### 环境要求 - Python 3.8+ - pip ### 安装与运行 ```bash # 1. 克隆仓库 git clone git@gitee.com:Chester_Xue/city_dashboard.git cd city_dashboard # 2. 安装依赖 pip install -r requirements.txt # 3. 生成模拟数据 python3 data_generator.py # 4. 启动大屏 streamlit run dashboard.py --server.port 8501 --server.address 0.0.0.0 ``` 或使用一键脚本: ```bash chmod +x run.sh ./run.sh ``` 打开浏览器访问 **http://localhost:8501** ## 📂 项目结构 ``` city_dashboard/ ├── dashboard.py # 主大屏应用(Streamlit) ├── data_generator.py # 模拟数据生成器 ├── city_data.csv # 生成的模拟数据(1500条) ├── requirements.txt # Python 依赖 ├── run.sh # 一键启动脚本 ├── .gitignore └── README.md ``` ## 📊 数据说明 - **案件数量**:1500 条模拟记录 - **覆盖区县**:雨城区、名山区、荥经县、汉源县、石棉县、天全县、芦山县、宝兴县 - **案件类型**:市容环境、市政设施、园林绿化、街面秩序、宣传广告、突发事件 - **时间跨度**:最近 45 天 - **数据性质**:模拟演示数据,经纬度基于各区县中心点添加 ±0.05° 随机偏移 ## 🔧 自定义配置 - 修改 `data_generator.py` 中的 `N` 变量调整数据量 - 调整 `DISTRICTS` 字典修改区县经纬度中心点 - 修改 `dashboard.py` 中的图表样式、颜色方案等 ## 📝 许可 MIT License --- *雅安市城市运行管理服务平台 | 数据为模拟演示数据 | Streamlit + Plotly + Pandas*