# 图数据可视化分析系统 **Repository Path**: lijiayang163/Graph_Data_Analysis_System ## Basic Information - **Project Name**: 图数据可视化分析系统 - **Description**: 一个基于 Flask + Cytoscape.js 的交互式图数据可视化与分析系统,支持 JSON 图上传、聚类分析(KMeans、Louvain、Chinese Whispers)、中心性计算与多种布局交互,集成 MySQL 存储,适合快速原型、教学演示与轻量级探索性分析。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-13 - **Last Updated**: 2025-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: 图数据, 可视化, Flask, 聚群算法 ## README # 图数据分析系统 一个轻量级的、基于 **Flask + Cytoscape.js** 的 **交互式图数据可视化与分析平台**。 支持图结构上传、聚类分析(KMeans + Node2Vec、Louvain、Chinese Whispers)、中心性分析(PageRank、度中心性、接近中心性、中介中心性)以及丰富的前端交互功能。 GitHub: https://github.com/Jiayang163/Graph_Data_Analysis_System ![演示截图](docs/centrality.png) 更多截图请查看 [Demo.pdf](docs/demo.pdf)。 --- ## 功能特性 * **图数据上传**:上传 JSON 格式的图数据并即时渲染 * **多种布局**:力导向、圆形、层次化、网格、随机布局 * **聚类算法**: * KMeans(结合 Node2Vec 嵌入) * Louvain * Chinese Whispers * **节点中心性分析**: * PageRank * 度中心性 * 接近中心性 * 中介中心性 * **图指标分析**:直径、密度、聚类系数、连通分量等 * **交互功能**: * 节点点击/悬停信息展示 * 节点与边筛选 * 历史记录保存与加载 * 图像与数据下载 --- ## 系统依赖 ### Python * Python 3.8+ * Flask * NetworkX * Scikit-learn * NumPy * Pandas * node2vec 安装依赖: ```bash pip install -r requirements.txt ``` ### 前端 系统使用的 JS/CSS 库(已通过 HTML 中的 CDN 引入): * Cytoscape.js * Cytoscape-fcose、Cytoscape-cise * Chart.js * Bootstrap Icons --- ## 项目结构 ``` . ├── app.py # Flask 后端 ├── templates/ │ ├── index.html # 主页面 │ └── login.html # 登录/注册页面 ├── static/ │ ├── css/ │ │ ├── style.css # 主页面样式 │ │ └── login.css # 登录/注册样式 │ ├── js/ │ │ ├── main.js # 主页面逻辑 │ │ └── login.js # 登录/注册逻辑 ├── requirements.txt └── README.md └── docs/ └── demo.png # 系统运行截图 └── demo.pdf # 系统运行完整截图 └── init_db.sql # 数据库与数据表创建 SQL ``` --- ## 使用教程 ### 1. 克隆仓库 ```bash git clone https://github.com/yourusername/graph-data-analysis-system.git cd graph-data-analysis-system ``` ### 2. 安装 Python 依赖 ```bash pip install -r requirements.txt ``` ### 3. 启动后端 ```bash python app.py ``` 服务器启动后访问: ``` http://127.0.0.1:5000 ``` ### 4. 访问前端 UI * 打开浏览器访问 `http://127.0.0.1:5000` * 注册账户、登录,或直接以游客身份进入 * 上传 JSON 格式的图数据或加载模板图 ### 5. 数据库配置 本系统使用 MySQL 数据库存储: * 用户账户信息 * 上传的图数据记录 * 预设图模板 #### 第一步:创建数据库与数据表 运行 `docs/init_db.sql`: ```bash mysql -u root -p < docs/init_db.sql ``` #### 第二步:修改数据库连接信息 在 `app.py` 中修改: ```python DB_HOST = "localhost" DB_USER = "root" DB_PASSWORD = "yourpassword" DB_NAME = "flask" ``` 完成数据库配置后即可正常启动后端。 --- ## JSON 图数据格式示例 ```json { "nodes": [ { "data": { "id": "1", "label": "Node 1" } }, { "data": { "id": "2", "label": "Node 2" } } ], "edges": [ { "data": { "source": "1", "target": "2", "weight": 1 } } ] } ``` --- ## 开源协议 本项目基于 **MIT License** 许可,您可以自由使用、修改、分发。 --- ## 贡献 欢迎提交 Pull Request。如果您发现任何 bug 或希望增加新功能,请通过 issue 或 PR 提交。 ---