以下是关于将数据分析转成可视化图的相关内容:
实践 1:用 Kaggle 的天气数据集绘制气温趋势折线图与月降雨天数柱状组合图
项目要求:绘制气温趋势折线图+月降雨天数柱状组合图,即双 y 轴图形。
打开数据集,分析数据:
发现第一行有着 Formatted Date,Precip Type,Temperature 表头,这三列与数据可视化目的明显关联,Formatted Date 数据提取整理后可作横坐标,Precip Type 数据反映月降雨天数,Temperature 数据反映气温趋势。
新建 python 文件,开始编程:
选择 python 文件,命名保存。
调用库:
读取数据:文件格式为 csv,可用 pandas 库。
数据处理:处理出 x 轴及有关气温、降雨的数据。
创建图表、添加标题与图例、保存并显示图形。
试运行与 Debug:
可能出现左纵坐标数据明显有误的情况,如降雨天数数值过大。原因是一天记录了多个时刻的天气状况,而写代码时未考虑,直接把出现“rain”的都记录了进去。
给 MarsCode 说明问题,重新生成代码,结果符合预期,可视化目的实现。
ChatGPT 助力数据分析:实际案例与技巧
问题与技巧:
公用逻辑:
在 user prompt 限定 SQL 和数据分析及其返回格式,不用 system prompt 的原因:一是 system prompt 已承载表结构信息;二是 user prompt 遵循力度更高。
分开定义单维度数据和多维度数据的 prompt,而不直接丢给让 GPT 判断的原因:存在两种结果导向的 prompt 约有 50%几率 GPT 会犯傻,最好在发送请求前用条件运算符区分格式的 prompt,代码判断后决定使用。
前端渲染图表:SQL 分析的接口或个性化分析解析的数据文件所获得的 tableData,其格式与渲染表格的格式一样为对象数组。让 GPT 判断出对象的 key 值映射:keyMap,得知维度、数据项、数据值的 key,就可拿到并处理成图表所需的 series、xAxis。
流程:
第一个 user prompt:限定 SELECT SQL,要求不要用 SELECT查询全部列,仅回复一条 SELECT SQL 语句,至少查询两列:数据项、数据值,且不能直接查询长类型字段。
system prompt 是表结构信息,如有难以理解的字段可告知 GPT 字段意义,多个表可分开描述。
校验 GPT 生成的 SQL,不通过直接返回提示,通过再执行 SQL 查询数据。
数据分析的 user prompt:提示数据分析,限定返回的 JSON 格式:conclusion、keyMap、title。采取分开定义单维度数据和多维度数据的 prompt,根据结果数据 tableData 的维度,用条件运算符选择对应的 prompt,再传递给 GPT。
结果数据 tableData 跟随接口一起返回到前端,已通过 SQL 查询的数据,不能让 GPT 又生成一次。
2025-03-16