本回答主要以2020下半年中国最娱乐的人气男明星top10变化动态条形图为例来展示如何用python生成动态条形图。

知乎视频​www.zhihu.com

一、 python生成动态条形图:以2020下半年中国最娱乐的人气男明星top10变化动态条形图为例。

1. 安装第三方库

1.1

下载第三方库的网址:https://git-scm.com/download/win

(cmd中利用pip install的版本不是2.0,运行时会报错,所以上官网下载最新的会好一些)

首先右击此电脑-属性-查看电脑操作系统位数,本人电脑为64位。

1.2 git安装完毕后,在cmd中切换到想要下载的目录,然后下载:git clone https://github.com/dexplo/bar_chart_race.git
其中,https://github.com/dexplo/bar_chart_race.git 就是它的git地址;

1.3 我这里下载的目录是在:D:程序python

在cmd中进入该文件夹,然后运行:python setup.py install,安装完成后,会提示:Finished processing dependencies for bar-chart-race==0.2.0 ,看到这个,就证明我们成功了!

2. 数据收集及预处理

本文数据从123粉丝网爬取,经处理后如下,最好以date为DataFrame的index(可以私信本人获取此数据,还有1989年-2019年各省市年GDP数据文件):

3. 举例

import bar_chart_race as bcr

import pandas as pd

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图1.mp4',steps_per_period=24,title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.1 默认情况

import bar_chart_race as bcr

import pandas as pd

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图2.mp4',title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.2 设置中文:显示中文

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-显示中文.mp4',title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.3 转换图的方向

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-转换方向.mp4',

orientation='v',#使用 orientation 参数,转换图的方向,’h’和’v’;

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.4 改变排序情况

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-改变排序.mp4',

sort='asc'#升序,默认为降序

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.5 设置柱状图条数

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-设置柱状条数.mp4',

n_bars=10, #这里本人取10,可以视情况而定

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.6 固定轴的最大值

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-设置最大值.mp4',

fixed_max=True,

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.7 设置帧数

#默认情况下,帧数为10,我们可以将这个值改大,使图像更流畅;当然也可以改小;

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-设置最大值.mp4',

steps_per_period=24, #设置帧数

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.8 设置步长与停留时间

#

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-设置步长与停留时间.mp4',

period_length=2000, #设置步长与停留时间,可以调节数值变化速度

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

4.9 条形图颜色不重复

#

import bar_chart_race as bcr

import pandas as pd

from pylab import * #设置显示中文

mpl.rcParams['font.sans-serif']=['MicroSoft YaHei']#设置中文字体为雅黑

df=pd.read_csv('男明星人气数据.csv', index_col ='date')

bcr.bar_chart_race(df,filename='动态条形图-条形颜色不重复.mp4',

period_length=2000, #设置步长与停留时间,可以调节数值变化速度

filter_column_colors=True, #条形颜色不重复

title='中国最娱乐的男明星人气排行榜(数据源自123粉丝网)')

二、 报错情况举例和解决方法

1. AttributeError: module ‘sip‘ has no attribute ‘setapi‘

解决办法:
最后发现这个报错的原因是 matplotlib 库的版本太高,我报错的版本是 3.3.2,将其降级到 3.3.0 就没有问题了;

先卸载:pip uninstall matplotlib

再安装:pip install matplotlib==3.3.0

问题解决!!

2. IndexError: list index out of range

解决办法: 下载 :https://imagemagick.org/script/download.php 处的软件,安装即可,但是这个网址下载比较慢; 下载安装,记得在安装时要勾选这两项;

根据系统选择下载版本,我选择的是Windows。

问题解决!!

升序排序中国_干货满满!6行python代码挑战展示2020下半年中国最娱乐的人气男明星人气排行榜top10!...相关推荐

  1. python30行代码_仅利用30行Python代码来展示X算法

    假如你对数独解法感兴趣,你可能听说过精确覆盖问题.给定全集 X 和 X 的子集的集合 Y ,存在一个 Y 的子集 Y*,使得 Y* 构成 X 的一种分割. 这儿有个Python写的例子. X = {1 ...

  2. bert获得词向量_只需几行 Python 代码,即可用 BERT 玩转词嵌入!

    作者 | Anirudh_S 译者 | Sambodhi 编辑 | 张之栋 AI 前线导读: 在自然语言处理领域中,诞生于 2018 年末的 BERT 非常的"火热".强悍如 BE ...

  3. python9行代码_如何用9行Python代码编写一个简易神经网络

    原标题:如何用9行Python代码编写一个简易神经网络 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 学习人工智能时,我给自己定了一个目标--用Pyth ...

  4. python模拟别人说话的声音_如何用100行Python代码做出魔性声控游戏“八分音符酱”...

    最近几天,一款魔性的小游戏在微博上刷屏了,各大平台的主播也纷纷如感染病毒一样直播自己怎么玩这个游戏(被游戏玩). 这个游戏叫做<不要停!八分音符酱♪>.它是一款来自岛国的恶搞游戏,主角是一 ...

  5. 实战干货!50行Python代码一键整理桌面!

    大家好,我是菜鸟哥! 我的老同学小马忙于找工作,整天被各种照片信息,和面试笔试资料搞的焦头烂额,很多文件来不及处理,全部都堆放在了一起,久而久之,就造成了桌面非常的混乱,如下图所示: 乱糟糟的桌面,让 ...

  6. python如何读取公共盘的文档_如何使用 Sphinx 给 Python 代码写文档 | Linux 中国

    最好将文档作为开发过程的一部分.Sphinx 加上 Tox,让文档可以轻松书写,并且外观漂亮.-- Moshe Zadka Python 代码可以在源码中包含文档.这种方式默认依靠 docstring ...

  7. 上海python招聘微信群_如何用20行Python代码打造一个微信群聊助手?

    今天要教大家一个黑科技,20行代码实现自己定制的微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的微信上有一大批好 ...

  8. 如何制作python代码_如何使用50行Python代码制作一个计算器

    (点击上方公号,可快速关注) 作者:Stories For Sad Robots 译者:开源中国社区 链接:http://www.oschina.net/translate/how-to-write- ...

  9. python的控件text的文本属性_只需6行Python代码就给图片加上水印——你一看就会了...

    大家在做项目开发的过程中,会不会经常遇到需要处理图片却没有快速有效的工具的情况呢?比如客户需要给图片加上水印,你可能会用到PS这些高级软件去处理,这样虽然有效果但是需要相对较长的时间:作为程序猿,你一 ...

最新文章

  1. GridView隐藏列取值解决方案
  2. 钉钉 python调用审批信息_python之钉钉审批导出
  3. 机器学习 | 数据从哪里找?手把手教你构建数据集
  4. 第二节 RabbitMQ配置
  5. 【中继协助频谱切换】基于中继协助的频谱切换机制的MATLAB仿真
  6. linux C 获取日期时间
  7. 004-linux常用命令-权限管理命令
  8. php程序里的configini_PHP: 配置文件 - Manual
  9. https://sysdig.com/
  10. ArcGIS操作小技巧(四)之拓扑工具条灰色无法操作
  11. 使用JSP做一个小小的项目(一)
  12. 推荐阅读投资理财经典55本
  13. python制作ppt_如何利用Excel与Python制作PPT
  14. linux num_fds文件描述符数量限制 too many openfiles 错误
  15. AutoCAD 2019 for mac汉化版
  16. cm12 系统字体更换
  17. Visual Studio项目属性配置
  18. 零钱兑换问题c语言编程,leetcode- 零钱兑换 II(背包问题-总结-复盘)
  19. AntDesign 分页 警告 [`dataSource` length is less than `pagination.total` but......] 解决方法
  20. 用三极管制作的三色LED循环灯,灯珠颜色及排列可随意组合

热门文章

  1. Html百分比设宽偏差大,前端开发之移动端适配详细讲解
  2. 用php 用拼出一个菱形_这可是我没来过的杭州呀!远在开封的他,用一种特殊的方式,拼出一个彩色杭州...
  3. IOS 多层级路由导航控制器 NavigationControoller 实现路由切换
  4. 【OpenCV 例程200篇】82. 频率域巴特沃斯低通滤波器
  5. 国产自主可控的代码自动生成工具SkyEye
  6. 计算机应用技木就业前京,计算机专业毕业的研究生在京就业情况及启示.doc
  7. excel在线_功能强大的纯前端 Excel 在线表格: Luckysheet
  8. matlab fbb,[求助]请教如何将modelsim仿真的输出结果导入到matlab中分析
  9. python arcgis批量绘图_ARCGIS中Python实现批量裁剪
  10. pythonjavascript一起开发_Python开发【第十一篇】:JavaScript