news 2026/9/19 22:45:22

从 JSON 到图表:last30days-skill 30 天舆情数据可视化完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 JSON 到图表:last30days-skill 30 天舆情数据可视化完整指南

从 JSON 到图表:last30days-skill 30 天舆情数据可视化完整指南

【免费下载链接】last30days-skillAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary项目地址: https://gitcode.com/GitHub_Trending/la/last30days-skill

你刚用 last30days-skill 跑完一次研究,拿回一份塞满数字的 results.json:标题、平台、互动量。直接盯着数字看,很难判断哪条内容火、哪个平台讨论最活跃。这篇文章带你走完 last30days-skill 数据可视化的完整路径:装好环境、用一条命令取数、再用十几行 Python 画出第一张图,读完就能得到一张可以直接放进汇报的图。

先看效果:结果先行

这是把统计指标组织成图表后的样子:一个进度环表示完成度,几张卡片并排放置卡路里与时长。同样的排版思路套到你的 results.json 上,30 天的数据就不再是一堆平铺的数字,哪条讨论热、哪个平台声音大,都能快速分辨出来。

从装好到跑出结果的最短路径

环境准备:克隆仓库并装好画图库

git clone https://gitcode.com/GitHub_Trending/la/last30days-skill cd last30days-skill pip install matplotlib

看到本地多出一个 last30days-skill 目录,且python --version不低于 3.12,说明环境就绪。

一条命令拿到 30 天数据

取数入口是 skills/last30days/scripts/last30days.py,在终端执行下面这条命令,引号里的占位内容换成你真正要查的话题即可:

python skills/last30days/scripts/last30days.py "你的话题" --emit=json --output results.json

跑完后当前目录会出现results.json,这就是后面画图要用的全部原料。

结果文件长什么样

顶层是results数组,每条结果带title(标题)、source(来源平台,如 reddit、x)、published_at(发布时间)、engagement(互动计数对象:点赞、评论、转发)。数据落库前会过两道工序:skills/last30days/scripts/lib/dedupe.py 过滤掉互相重复的条目,skills/last30days/scripts/lib/normalize.py 把各平台的原始数据对齐成统一字段。完整字段表可查 docs/reference/json-export.md。

用最少的代码画出第一张图

下面这段代码取前 10 条结果,把它们的互动量画成横向柱状图,保存为chart.py

import json import matplotlib.pyplot as plt data = json.load(open("results.json", encoding="utf-8")) top = data["results"][:10] labels = [t["title"][:22] for t in top][::-1] values = [t.get("engagement", {}).get("score", 0) or t.get("engagement", {}).get("likes", 0) for t in top][::-1] plt.barh(labels, values) plt.title("30 天社媒话题热度 TOP 10") plt.xlabel("互动量") plt.tight_layout() plt.show()

运行python chart.py会弹出一张图:条形越往右伸,说明社区对这条讨论给的关注越多。

三种进阶调法

每种只改动上面代码的几行,先说明改哪个参数,再说视觉上的变化。

换成折线图看 30 天走势

plt.barh换成plt.plot,横轴放按published_at排好序的日期,纵轴放当日互动量合计。视觉上,柱条变成一条曲线,话题哪天开始起热、哪天回落,直接就能看出来。

按平台对比讨论热度

source的取值把results拆成 reddit、x 两组,分别累加互动量,再画成两组柱状图(或给plt.barbottom偏移做成堆叠)。视觉上,同一话题在两个平台的差距被并排摆在一起。

用颜色标出最热的几条

plt.barh传入color颜色列表:互动量超过你设的阈值就用醒目颜色,其余用浅色。视觉上整张图只有少数几条扎眼,值得放大细读的就是它们。

柱状、折线之外,统计指标还可以像下图这样组织成多栏卡片式:一栏放一个指标,版式随意拼,适合放进周报或对比页。

常见坑位

运行命令就报错:第一行提示last30days v3 requires Python 3.12+。原因是入口脚本会硬校验解释器版本,3.12 以下直接拒绝执行。用python --version确认当前版本,装到 3.12 再重跑即可。

首次运行进入引导,迟迟没有 results.json:部分平台(如 X)需要先解锁凭据或浏览器 Cookie 才能抓取,所以首次运行会先进 setup 引导。按提示逐项配置数据源,或跳过不需要的来源;未配置的来源只会在source_status里标为skipped-unconfigured,不阻塞其余数据落盘。

画图代码里报 KeyError:JSON 契约对取值未知的字段是直接省略而不是输出 null,个别条目可能没有published_atengagement。统一改用.get()读取并给定默认值,就能避开缺字段的问题。

图表只是 results.json 的一种呈现形式,同一份数据还可以贴进周报、对比页,或者再交给 AI 生成摘要。选一个你正关心的话题,先把那条取数命令跑起来吧 📊

延伸阅读:

  • 多平台检索与排序机制说明:docs/how-search-works.md
  • Reddit 抓取逻辑的测试用例:tests/test_reddit_sc.py
  • Hacker News 数据源的测试用例:tests/test_hackernews.py

【免费下载链接】last30days-skillAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary项目地址: https://gitcode.com/GitHub_Trending/la/last30days-skill

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 22:40:40

海伦公式详解:从数学推导到编程实现与数值优化

简介:海伦公式(海伦-秦九韶公式)是仅用三条边长即可求任意三角形面积的重要工具,这份PDF系统梳理了其历史渊源、两种经典证明、“三斜求积术”对照以及圆内接四边形面积的推广,适合中学数学学习者、竞赛选手和教师备课…

作者头像 李华
网站建设 2026/9/19 22:39:17

华为FTTR光猫V173/F30改公开版界面与刷一体固件实战指南

1. 华为FTTR光猫V173 F30改公开版界面这件事,到底在折腾什么手里有一台华为FTTR光猫V173或者F30,运营商定制界面锁得死死的,想改个桥接、想看个完整的光功率、想调个QoS策略,翻遍菜单都找不到入口——这事儿我猜不少折腾家庭网络的…

作者头像 李华
网站建设 2026/9/19 22:38:34

C语言课程设计:用链表与文件实现网吧管理系统

简介:这是一份面向C语言初学者的课程设计文档,完整记录了“网吧管理系统”从题目分析、功能设计到编码调试的全过程。内容覆盖会员信息录入、删除、浏览、积分计算及密码登录等核心模块,并系统梳理了结构体数组、函数调用、指针、文件读写等关…

作者头像 李华