网易首页 > 网易号 > 正文 申请入驻

哪种编程语言最受欢迎?CSDN TopN 指数月排行榜竞赛动画告诉你答案!

0
分享至

作者 | 幻灰龙

出品 | CSDN博客

近日,CSDN开源了一个topN词竞赛动画项目topn_race:

  • GitCode仓库:https://gitcode.net/csdn/topn_race

核心功能:

  • 输入:按月统计的topN词频数据

  • 输出:topN词频竞赛动画(可带音效)

源码结构

本项目基于开源项目:https://github.com/dexplo/bar_chart_race定制,src/bar_chart_race从bar_chart_race项目的源代码修改以适配需求。

依赖库:


progress==1.5matplotlib==3.4.2pandas==1.2.4numpy==1.19.5moviepy==1.0.3

源码结构:


.├── LICENSE├── README.md├── data│ ├── csdn_ask_top10_month│ │ ├── 2008-05-01.json│ │ ├── 2008-06-01.json│ │ ├── ...│ └── csdn_trends_top10_month│ └── csdn_index_top_10.csv├── demo│ ├── csdn_ask_top10_month.gif│ ├── csdn_trends_top10_month.gif│ └── demo.md├── main.py├── pub│ ├── ...├── requirements.txt└── src ├── bar_chart_race │ ├── __init__.py │ ├── chart.py │ └── colormaps.py ├── common │ ├── __init__.py │ ├── error.py │ ├── gif.py │ ├── json.py │ ├── path.py │ ├── random.py │ └── utils.py └── top.py

其中:

  • main.py是测试程序入口

  • src/top.py是topN竞赛动画的逻辑组织控制层

  • src/common提供了一些基本的utils

  • src/bar_chart_race从bar_chart_race项目的源代码修改以适配需求

  • 基本样式的内部调整

  • 使用漫画风格

代码说明

基本用法如下:


def test_build_csdn_trend_top10_tag_race(): input = InputMeta( type='csv', path='data/csdn_trends_top10_month/csdn_index_top_10.csv', month_field='date', name_field='tag_name', count_field='index_value', audio='pub/mali.mp3' )
output = OutputMeta( path='pub/csdn_trends_top10_month', ext='gif', title='CSDN topN指数月排行榜', x_label='csdn.net/trends', y_label='指数', month_count=None )
top = Top(input, output) top.build()

Top类的构造函数传入两个参数,input: InputMeta 和output: OutputMeta。很多Python代码的参数能有几十个参数,通过InputMeta和OutputMeta两个dataclass可以让使用更友好:


@dataclassclass InputMeta: ''' type: 指定类型,如果是 "json_str" 表示一个JSON文件夹,如果是"csv"表示一个csv文件 JSON 文件夹: 约定每个文件的文件名是月份,每个JSON文件是一个数组,数组元素是标签统计信息 name_field: 指定标签名字的字段名 count_field: 指定标签月份统计信息的字段名 CSV 文件 month_field: 指定月份字段 name_field: 指定标签名字的字段名 count_field: 指定标签月份统计信息的字段名 audio: 音频 ''' type: str path: str month_field: str name_field: str count_field: str audio: str

@dataclassclass OutputMeta: ''' 输出配置 path: 输出路径 title: 标题 x_label: X轴名字 y_label: Y轴名字 month_count: 绘制月份,用来调试,使用较少的月份快速查看输出效果 ''' path: str ext: str title: str x_label: str y_label: str month_count: int

Top 类的 build 里的处理流程包括:

  • 转换输入数据到每月一行的 DataFrame

  • 每12个月数据生成一个竞赛动图 GIF

  • 原因之一:太大的GIF文件生成会有内存占用问题,分片处理。

  • 原因之二:分片后,规避出错时要从头再来的问题。

  • 合并多个GIF,生成一个MP4文件

  • 如果输入指定了音频文件,使用音频源采用repeat方式与MP4合成轨道并输出带音效的文件

输出目录pub下的文件不提交到git仓库,需要注意的是,构建过程中不同平台上的中文字体会有差异,目前适配了Mac和Linux的字体,其他平台待测试。

实例:CSDN topN指数月排行榜竞赛动图

CSDN指数

CSDN指数是基于自2000年以来CSDN平台产生的海量内容数据、用户行为计算而来,作为中国知名专业IT技术社区,CSDN指数具备高度权威性,您可通过查询关键字,用以进行技术领域趋势分析、技术选型变迁历史探索、技术内容消费特征洞察、开发者岗位需求预测等。

我们用CSDN指数的数据做了一个topN指数月排行榜竞赛动图。竞赛动画部分片段GIF:

完整版本请看:

  • CSDN topN指数月排行榜竞赛动画(2000.1-2021.12)独立视频:https://vedu.csdnimg.cn/original/e1eb794defa74b8c8bae0fcb1daaefda/3e1fbcc6-17e0a46ff27.mp4

  • CSDN topN指数月排行榜竞赛动画(2000.1-2021.12)社区帖子:https://bbs.csdn.net/topics/603979017

数据可视化

数据经过可视化处理后,可以发现数据间的规律,欢迎对项目提交贡献。开箱即用的漫画风格topN竞赛动图:https://gitcode.net/csdn/topn_race

《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
叙利亚军通讯设备被炸,熟悉味道又来了,巴沙尔拒绝出兵吃了大亏

叙利亚军通讯设备被炸,熟悉味道又来了,巴沙尔拒绝出兵吃了大亏

咊墨一笔
2024-12-01 00:34:12
1-4惨败!中国队又输了,18分钟丢4球崩盘,球迷失望

1-4惨败!中国队又输了,18分钟丢4球崩盘,球迷失望

象牙三
2024-11-30 11:52:52
深山发现神秘温泉,能让人长寿,749局调查发现并毁掉(下)

深山发现神秘温泉,能让人长寿,749局调查发现并毁掉(下)

老烟斗
2024-11-29 08:00:07
中国有两大致命缺口,一个是台湾,另一个曾要300万大军才能堵住

中国有两大致命缺口,一个是台湾,另一个曾要300万大军才能堵住

历史求知所
2024-11-29 12:50:03
乌克兰的妇女们要慌神了,泽连斯基发布了乌克兰征兵的新令!

乌克兰的妇女们要慌神了,泽连斯基发布了乌克兰征兵的新令!

星辰故事屋
2024-11-30 14:02:54
你不知道的性生活体位技巧,快来看看!

你不知道的性生活体位技巧,快来看看!

智见派
2024-11-24 22:52:18
表现天差地别,火箭手握汤普森说明书,奥萨不被重用或将另有打算

表现天差地别,火箭手握汤普森说明书,奥萨不被重用或将另有打算

拾叁back
2024-12-01 04:35:34
巴沙尔拒绝出兵打击以色列,终于吃大亏:72小时内俄军空降叙利亚

巴沙尔拒绝出兵打击以色列,终于吃大亏:72小时内俄军空降叙利亚

贵州阿饽聊故事
2024-11-30 15:15:31
原来跟孕妇相处,真要多留个心眼!网友一语道出真相,无法低估人性

原来跟孕妇相处,真要多留个心眼!网友一语道出真相,无法低估人性

笑熬浆糊111
2024-12-01 00:05:33
山东济宁市市长于永生,调任新职

山东济宁市市长于永生,调任新职

新京报政事儿
2024-11-30 20:42:20
离谱到家,《再见爱人4》反转,真是我近年看过最恶心的综艺画面

离谱到家,《再见爱人4》反转,真是我近年看过最恶心的综艺画面

八卦南风
2024-11-29 12:26:39
中国传媒大学校花冯琳,“德不配位”才会收不到央视的橄榄枝吗

中国传媒大学校花冯琳,“德不配位”才会收不到央视的橄榄枝吗

户外阿毽
2024-11-29 07:30:02
青龙奖这一夜,韩国女星争相斗艳,却都输给了中国温婉大气的汤唯

青龙奖这一夜,韩国女星争相斗艳,却都输给了中国温婉大气的汤唯

吾爱纪实
2024-11-30 15:48:20
震惊!婆媳吵架引发血案!警方击毙儿媳和2月大婴儿,丈夫坐床边目睹一切

震惊!婆媳吵架引发血案!警方击毙儿媳和2月大婴儿,丈夫坐床边目睹一切

华人生活网
2024-11-30 05:44:50
因失恋接“三级片”,她被多少人保存硬盘里

因失恋接“三级片”,她被多少人保存硬盘里

霹雳炮
2024-11-29 21:25:03
网友曝农村宅基地开始收费了,按面积算,有人每年需要缴纳2000元

网友曝农村宅基地开始收费了,按面积算,有人每年需要缴纳2000元

星河也灿烂
2024-11-30 14:41:25
卡米拉整容!出席“王后阅览室”美艳逼人,老公查尔斯直接看呆了

卡米拉整容!出席“王后阅览室”美艳逼人,老公查尔斯直接看呆了

小寒嫣语
2024-11-30 21:42:53
中国体操名将力挺吴柳芳:管晨辰多管闲事,等你光环散去就能明白

中国体操名将力挺吴柳芳:管晨辰多管闲事,等你光环散去就能明白

尘语者
2024-11-28 14:16:15
1:4!1:1!英超榜首战:利物浦15场不败,曼城输球=卫冕无望

1:4!1:1!英超榜首战:利物浦15场不败,曼城输球=卫冕无望

阿超他的体育圈
2024-11-30 05:50:03
特朗普感恩节晚宴:马斯克主桌C位,伊万卡被边缘化,3个细节曝光

特朗普感恩节晚宴:马斯克主桌C位,伊万卡被边缘化,3个细节曝光

鋭娱之乐
2024-11-30 14:59:19
2024-12-01 07:27:00
CSDN
CSDN
成就一亿技术人
25093文章数 241906关注度
往期回顾 全部

科技要闻

官宣!华为+广汽,联手造车!

头条要闻

八年来首次 叙利亚反对派武装攻入阿勒颇大部分地区

头条要闻

八年来首次 叙利亚反对派武装攻入阿勒颇大部分地区

体育要闻

历史第一!詹姆斯再创里程碑宝刀不老

娱乐要闻

恶意炒作!李行亮麦琳和好后口碑崩塌

财经要闻

雪松爆雷前实控人张劲在香港抛售房产

汽车要闻

比亚迪方程豹豹8推送首次OTA 新增暴力模式

态度原创

家居
游戏
手机
本地
公开课

家居要闻

现代设计感 温馨两居室

双倍、三倍灵活用,梦幻西游嘉年华满级腰带获取难度并不高!

手机要闻

别急着换机,12月有四款新机在路上,从旗舰到性价比都有!

本地新闻

云游中国|来伦布夏果感受充满Passion的人生

公开课

一块玻璃,如何改变人类世界?

无障碍浏览 进入关怀版