2020年iOS中国区各畅销游戏总流水动态图,附数据源下载

2021-08-05 14:53:10 浏览数 (1)

数据来源:七麦—应用收入预估

1. 制作流程:

  1. 数据采集先通过七麦数据的收入榜单获取2020年每月度流水前50游戏应用列表
  2. 数据采集然后再遍历列表全部应用的收入预估数据
  3. 数据处理合并数据再pivot透视为宽表
  4. 数据处理最后cumsum累加求和
  5. 可视化使用bar_chart_race库进行动态条形图制作

本文仅做数据可视化部分的简单介绍,数据采集部分后续我们拿别的网站进行分享主要是关于js反爬,数据处理部分并不难后续我们再单独进行讲解。

后台回复0313,可以获取本文涉及到的数据bar_chart_race库文件和相关环境搭建需要的软件

2. 动态条形图制作

下载bar_chart_race库

直接pip安装的不是最新的,建议大家可以通过以下两种方式下载安装:

  • 方式①前往github下载最近的包:https://github.com/dexplo/bar_chart_race;
  • 方式②公众号后台回复0313,可以获取安装文件。

安装步骤

  1. 解压安装文件
  2. cmd中切换目录到安装文件所在目录,比如:cd /d D:迅雷下载bar_chart_race-master
  3. cmd执行安装命令:python setup.py install

安装流程

其他准备:

该库支持导出gifmp4视频文件,为了更好的导出,需要进行如下准备(否则可能报错):

  • 安装imagemagick,解决导出gif或mp4时可能出现的IndexError: list index out of range报错,下载地址:https://imagemagick.org/script/download.php。
  • 安装FFmpeg,直接cmd下执行安装命令:conda install ffmpeg。不过,在安装上面那个的时候,可以选择同时安装ffmpeg。
  • 中文字符乱码问题解决方案:参考《详解Matplotlib中文字符显示问题》

官方案例演示:

数据预览:(数据需要和官方数据格式保持一致)

官方数据预览

代码语言:javascript复制
import bar_chart_race as bcr

# 如果出现SSL错误,则全局取消证书验证
# import ssl
# ssl._create_default_https_context = ssl._create_unverified_context

# 获取数据
df = bcr.load_dataset('covid19_tutorial')
# print(df)

# 生成GIF图像
bcr.bar_chart_race(df, 'covid19_horiz.gif')

本文案例代码:

数据预览:

数据预览

代码语言:javascript复制
import bar_chart_race as bcr

# 获取数据
df = data
# print(df)

# 生成mp4文件
bcr.bar_chart_race(df=data, 
                    filename='动态条形图_累计流水横版.mp4', #生成的动态条形图的文件位置
                    orientation='h', #h条形图 v柱状图
                    sort='desc', #降序,asc-升序
                    n_bars=8, #设置最多能显示的条目数
                    fixed_order=False, # 设置固定类目
                    fixed_max=False, #固定数值轴,使其不发生动态变化 True-固定
                    steps_per_period=24, #图像帧数:数值越小,越不流畅,越大,越流畅
                    period_length=500, #设置帧率,单位时间默认为500ms 即为24帧的总时间是500ms
                    end_period_pause=0,#固定值比如年份的停留时间
                    interpolate_period=False, 
                    period_label={'x': .80, 'y': .5, 'ha': 'right', 'va': 'center','size':16}, #设置日期标签的时间格式
#                     period_template='%B %d, %Y', #设置日期标签的时间格式
#                     period_summary_func=None, #添加动态文本,此处为数值总数统计
#                     perpendicular_bar_func='median', #添加垂直条,可选类型有平均值、分位数等
                    colors='dark12', #设置柱状图颜色颜色,通过在「_colormaps.py」文件中添加颜色信息,即可自定义配置颜色
                    title={'label': '2020年iOS中国区游戏总流水排名(美元)','size': 18,}, #图表标题
                    bar_size=.95, #条形图高度
                    bar_textposition='inside',#条形图标签文字位置
                    bar_texttemplate='{x:,.0f}', #条形图标签文字格式
                    bar_label_font=16, #条形图标签文字大小
                    tick_label_font=16, #坐标轴标签文字大小
                    tick_template='{x:,.0f}',#坐标轴标签文字格式
                    shared_fontdict={'family': 'Microsoft YaHei','color': 'rebeccapurple'}, #全局字体属性
                    scale='linear', 
                    fig=None, 
                    writer=None, 
                    bar_kwargs={'alpha': .7},#条形图属性,可以设置透明度,边框等
                    fig_kwargs={'figsize': (16, 10), 'dpi': 144},#figsize-设置画布大小,默认(6, 3.5),dpi-图像分辨率,默认144
                    filter_column_colors=True #去除条形图重复颜色,True去除,默认为False
            ) 

其他绘图方法:

以下三种为主要的绘制动态图方法,大家都可以通过?查看参数及官方案例。

  • bar_chart_race
  • bar_chart_race_plotly
  • line_chart_race

更多参数及操作说明可以参考官方文档:https://www.dexplo.org/bar_chart_race/

此外,还有pandas_alive库也可以进行动态条形图绘制,另外诸如花火hanabi 等在线网站都可以绘制很好看的动态图,感兴趣的同学可以去了解下。

0 人点赞