目录
[三、系统架构:Django 负责业务闭环,ECharts 负责展示体验](#三、系统架构:Django 负责业务闭环,ECharts 负责展示体验)
[四、可视化分析:围绕 GPU 市场做多维度拆解](#四、可视化分析:围绕 GPU 市场做多维度拆解)
[六、聚类分析:把 GPU 样本划分成更容易理解的产品层级](#六、聚类分析:把 GPU 样本划分成更容易理解的产品层级)
有需要本项目的代码、文档、完整资源,或者需要部署调试的朋友,可以私信博主。
一、项目背景
这套项目围绕 GPU 硬件市场展开,核心想法很直接:显卡参数越来越复杂,架构、制程、显存、核心频率、接口、功耗、推荐电源、API 支持版本等信息分散在不同平台,普通用户想要横向比较并不容易。很多时候看单个商品详情页只能知道某一张卡的配置,却很难判断它在整个市场中处于什么位置,也看不出不同厂商、不同架构、不同显存类型之间的整体差异。
项目一开始也尝试过从电商平台采集数据,但实际测试中会遇到反爬限制、字段命名混乱、同一参数表达不统一等问题。为了保证分析结果稳定,我把数据源切换到标准化程度更高的公开 GPU 数据集,并围绕 34 个核心字段完成清洗、入库、分析和展示。这样做虽然少了一些实时电商价格信息,但参数质量更统一,更适合做系统化的市场结构分析。
|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
|
图 1 数据来源页面展示(已处理) |
图 2 GPU 原始数据结构展示(已处理) |
整体流程可以概括为:获取 GPU 原始数据,使用 Pandas 和 NumPy 完成字段整理、单位拆分、空值处理和格式规范化,再写入 MySQL 数据库;后端使用 Django 组织用户、管理员、数据接口和页面路由;可视化部分结合 pyecharts 与 ECharts,实现静态图表、动态页面和大屏展示;最后再用 KPrototypes 聚类算法对显卡样本做层级划分,形成面向选型和市场观察的分析闭环。
二、数据处理
GPU 数据看起来只是表格,真正处理起来并不简单。很多字段里同时混有数值和单位,例如 MHz、GB/s、MB、bit、W 等,如果不先拆分,后续就无法直接统计或建模。项目中先对字段名称做中文映射,把 Architecture、Memory、Core_Speed、Memory_Bandwidth 等字段改成更直观的中文名称,同时把单位写入列名,数据单元格里只保留可计算的数值。
空值处理也是这个项目里比较重要的一步。原始数据中既有标准空值,也有 "-"、"--"、"N/A"、"null" 等语义空值,还有前后空格导致的隐性异常。清洗脚本会先统一去除空白字符,再把这些异常标记转成统一缺失值。数值字段保留为可计算格式,类别字段保留原始语义,后续在聚类阶段再根据字段类型分别处理。
|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
|
图 3 字段含义整理展示 |
图 4 字段重命名与单位处理代码展示 |
|-------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
|
图 5 数据描述性统计结果 |
图 6 MySQL 数据表展示(已脱敏) |
数据入库采用 MySQL,表结构按照 GPU 参数类型设计。频率、显存容量、功耗、带宽等字段使用数值类型,厂商、架构、显存类型、推荐分辨率等字段使用字符串类型,是否独显、是否笔记本显卡、是否支持多卡等字段用布尔或整型表示。这样既方便 Django 后端调用,也方便 SQL 聚合统计和管理员后台维护。
三、系统架构
系统采用典型的 Web 应用结构,后端以 Django 为主体,负责用户认证、数据查询、管理员维护、接口返回和页面渲染。普通用户登录后可以进入可视化系统查看各类分析图表,也可以打开动态大屏查看综合指标。管理员则进入后台页面,对 GPU 数据、用户信息和系统概览进行维护。
页面端使用左右分栏布局,左侧是功能导航菜单,右侧是图表内容区。为了避免把所有图表堆在一个页面里,系统把 30 个图表按业务主题进行分组,例如图形接口与 API 能力、厂商与产品格局、架构与制程技术演进、频率性能与核心算力、显存系统与带宽能力、功耗能效与供电生态等。用户点击不同菜单,页面会加载对应的可视化结果,浏览体验会比单纯打开一堆图片更顺畅。
|-----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
|
图 7 用户注册界面展示(已脱敏) |
图 8 用户登录界面展示(已脱敏) |
|--------------------------------------------------------------------------------------------------|
|
图 9 用户端可视化主界面展示(已脱敏) |
|-------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
|
图 10 管理员后台概览展示(已脱敏) |
图 11 GPU 数据维护页面展示(已脱敏) |
|------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
|
图 12 用户管理列表展示(已脱敏) |
图 13 用户编辑弹窗展示(已脱敏) |
管理员后台主要承担运维角色。数据维护页面支持筛选、分页、新增、编辑和删除;用户管理页面支持查看用户列表和权限管理;系统概览页面则用数字卡片、趋势图和状态图展示当前数据量、用户数量、活跃情况和系统负载。为了适合公开展示,文档中的账号、电话、邮箱、时间等信息已经做了遮挡处理。
四、可视化分析
可视化部分不是简单做几张图,而是围绕硬件选型时最常关注的指标展开。接口和 API 维度主要看 DirectX、OpenGL、HDMI、DisplayPort、DVI、VGA 等支持情况,可以反映显卡在不同系统、显示设备和应用环境中的兼容性。图表结果显示,较新的图形 API 已经成为主流,但老版本接口仍然保留一定存量,这也符合硬件市场长期兼容的特点。
厂商与产品格局是另一个重点。系统通过饼图、雷达图和分组柱状图对 Nvidia、AMD、Intel、ATI 等品牌进行对比,能够直观看到不同厂商在产品数量、平均规格、显存带宽、接口支持和笔记本显卡占比上的差异。从整体分布看,市场呈现比较明显的头部集中格局,部分老品牌和老架构仍作为存量样本存在。
|-----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
|
图 14 DirectX 版本统计 |
图 15 OpenGL 版本分布 |
|-------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
|
图 16 接口覆盖率漏斗图 |
图 17 厂商接口覆盖率对比 |
|-----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
|
图 18 厂商数量占比 |
图 19 厂商平均规格雷达图 |
|-----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
|
图 20 架构数量排名 |
图 21 制程工艺分布 |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
|
图 22 加速频率分档分布 |
图 23 核心频率分档分布 |
|-----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
|
图 24 显存类型占比 |
图 25 显存类型性能均值对比 |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
|
图 26 最大功耗分档分布 |
图 27 功耗分档平均性能 |
架构和制程维度更偏技术演进。系统统计了架构数量排名和制程工艺分布,可以看出某些经典架构仍有较高出现频次,而成熟制程节点在样本中占据较大比例。这类图表适合用来观察 GPU 产品代际更替,也适合做硬件市场课程设计、数据分析课程项目或毕业设计展示。
性能侧主要看核心频率、加速频率、显存容量、显存带宽、位宽、功耗和推荐电源等指标。单看一个指标容易片面,项目里把它们拆成多个图表呈现:频率分档看主流区间,显存类型看技术路线,显存带宽看性能瓶颈,功耗分档看能效代价。这样处理后,读者不需要逐行阅读表格,也能大致理解 GPU 市场的产品层级。
五、动态大屏
除了普通图表页面,项目还单独做了一个动态可视化大屏。大屏页面更适合演示和发布展示,顶部是综合指标卡片,中间和两侧分布多个图表模块,包括规格维度对比、厂商画像、显存分层、接口配置、分档均值、显存类型占比等。页面右上角原本带有实时显示时间,发布版图片中已做遮挡。
大屏的数据不是写死在页面里,而是通过后端接口返回 JSON,前端使用 Ajax 请求后再由 ECharts 渲染。这样设计的好处是后续可以替换数据集或更新数据库,只要接口字段保持一致,前端页面就能继续复用。对于课程项目或毕业设计来说,这种前后端配合方式比静态图片更有完整性,也更容易体现系统开发能力。
|---------------------------------------------------------------------------------------------------|
|
图 28 动态可视化大屏整体展示(已脱敏) |
在交互方面,大屏保留了图表筛选、图例切换、鼠标悬浮提示、局部缩放等功能。部分图表支持按厂商、架构、显存类型、功耗等级切换维度,方便从不同角度观察市场结构。这个模块也是整个项目最适合作为博客封面或展示动图的部分,视觉效果比较直观。
六、聚类分析
系统不仅做展示,还加入了聚类分析。GPU 数据同时包含数值型字段和类别型字段,直接用普通 K-Means 会损失类别信息,所以项目选择 KPrototypes 算法处理混合特征。数值特征包括核心频率、加速频率、显存容量、显存带宽、最大功耗等,类别特征包括厂商、架构、显存类型、推荐分辨率等。为了避免显卡型号这种高唯一值字段影响聚类,建模时没有把它作为主要聚类特征。
聚类数量没有随意指定,而是结合肘部法和轮廓系数进行选择。最终分成 5 类后,样本之间的差异比较清晰,可以概括为入门办公型、主流 1080p 型、主流 2K 型、高端性能型和旗舰 4K 型。不同类别在显存容量、功耗水平、带宽能力、适配分辨率和厂商分布上都有明显差别,这个结果比单纯按价格或单一参数排序更有参考价值。
|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
|
图 29 聚类特征选择展示 |
图 30 肘部法结果展示 |
|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
|
图 31 轮廓系数结果展示 |
图 32 聚类类别占比 |
|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
|
图 33 聚类样本分布 |
图 34 各类别画像展示 |
聚类结果在系统中做了多种形式展示,包括样本散点分布、类别占比、各类厂商分布、类别画像和显存容量分布等。对于实际使用者来说,可以先通过聚类结果找到自己关心的产品层级,再回到具体参数图表中查看该层级的典型配置。这样就形成了"整体市场---产品分层---具体指标"的浏览路径。
七、项目适合展示的资源内容
这套系统的资料比较完整,适合整理成课程设计、毕业设计、项目作品集或博客资源包。完整资源一般可以包括 Django 项目源码、数据库建表脚本、预处理脚本、可视化脚本、聚类分析脚本、项目论文或说明文档、运行截图、环境依赖说明和部署说明。对于想复现的同学来说,重点是把数据库连接、数据表字段、静态文件路径和 Django 路由配置好。
如果继续扩展,可以在现有基础上加入价格字段、发布时间字段、显卡跑分数据和电商销量数据,进一步做价格区间分析、性价比评分、产品推荐或趋势预测。也可以把 GPU 扩展到 CPU、内存、硬盘、整机配置等更完整的电脑硬件数据,让系统从单一显卡分析升级为硬件市场综合分析平台。
整个项目的价值不只在于图表数量多,更在于把数据清洗、数据库、Web 系统、可视化大屏和聚类建模串成了一条完整链路。一个能跑起来、能展示、能维护、能解释结果的系统,往往比只做单点算法或单张图表更适合拿来做项目展示。
每文一语
真正能落地的项目,不是把技术堆得越多越好,而是把数据、流程和界面一步步打磨到能解决实际问题。