这篇教程Python制作动态词频条形图的全过程写得很实用,希望能帮到您。
前言”数据可视化“这个话题,相信大家并不陌生,在一些平台,经常可以看到一些动态条形图的视频,大多都是某国家 GDP 的变化或者不同国家疫情中感染人数的变化等等。 这篇文章,我们将使用 Python 绘制动态词频条形图,顾名思义,就是以词频作为数量指标的动态条形图。
前期准备
输入以下命令,安装必须的库: pip install JiashuResearchToolspip install jiebapip install pandaspip install bar_chart_race
数据的选择与获取
我们这次使用的数据是简书文章收益排行榜,日期范围为 2020 年 6 月 20 日至 2021 年 9 月 18 日。 
从网页中解析数据的过程较为复杂,我们使用简书数据科学库 JianshuResearchTools 完成。 为方便调试,我们使用 Jupyter Notebook 进行交互式开发。 导入 JianshuResearchTools,并为其设置别名: import JianshuResearchTools as jrt 调用接口,获取 2021 年 9 月 17 日的数据: jrt.rank.GetArticleFPRankData("20210917") 返回的数据如下: [{'ranking': 0, 'aslug': 'a03adf9d5dd5', 'title': '幸得君心似我心', 'author_name': '雁阵惊寒', 'author_avatar_url': 'https://upload.jianshu.io/users/upload_avatars/26225608/682b892e-6661-4f98-9aab-20b4038a433b.jpg', 'fp_to_author': 3123.148, 'fp_to_voter': 3123.148, 'total_fp': 6246.297}, {'ranking': 1, 'aslug': '56f7fe236842', 'title': '伤痕', 'author_name': '李文丁', 'author_avatar_url': 'https://upload.jianshu.io/users/upload_avatars/26726969/058e18c4-908f-4710-8df7-1d34d05d61e3.jpg', 'fp_to_author': 1562.198, 'fp_to_voter': 1562.198, 'total_fp': 3124.397}, (以下省略) 可以看出,返回的数据中包含文章的排名、标题、作者名、作者头像链接和关于简书资产的一些信息。 我们只需要文章的标题进行统计,所以我们将上面获取到的数据赋值给变量 raw_data,然后: [item["title"] for item in raw_data] 使用列表推导式,我们得到了文章标题组成的列表。 为方便处理,我们将这些数据连接起来,中间用空格分隔: " ".join([item["title"] for item in raw_data]) 但是我们遇到了报错: TypeError: sequence item 56: expected str instance, NoneType found
从报错信息中可以看出,我们获取到的文章标题列表中有空值,导致字符串的连接失败了。 (空值是因为作者删除了文章) 所以我们还需要加入去除空值的逻辑,代码编程这样: " ".join(filter(None, [item["title"] for item in raw_data])) filter 函数在第一个参数为 None 时,默认过滤掉列表中的空值。 现在我们获取到的数据如下: '幸得君心似我心 伤痕 短篇|阿生 “我最喜爱的友友”大评选|理事会 Python代码实现列表分组计数 Python 通过xpath属性爬取豆瓣热映的电影信息
|