Matplotlib 动态图还可以这样玩,收藏了!

本文介绍如何使用Matplotlib创建四种类型的动态GIF图:单曲线动态图、分段分不同背景颜色的动态图、双曲线动态图及多图多曲线动态图。文章提供了详细的核心代码实现,并展示了最终的动态效果。


公众号后台回复“图书“,了解更多号主新书内容

作者:Lemon

来源:Python数据之道

Matplotlib 动态图还可以这样玩,收藏了!

大家好,我是 Lemon。

Matplotlib 是 Python 数据可视化中不可或缺的一个可视化库,「Python数据之道」之前也给大家分享了一系列 Matplotlib 从基础到进阶的内容,包括:

今天给大家分享的是使用 Matplotlib 来创建动态 gif 图片,这个内容是以前没有分享过的。但 Lemon 觉得今天的内容也是特别的实用。

4种类型的动态 gif 图

今天给大家分享的包括4种类型的动态 gif 图,分别是单曲线动态图、分段分不同背景颜色的动态图、双曲线动态图、多图多曲线动态图。

核心思路是通过 Matplotlib 绘制动态图的动画帧,然后通过 python 的 'gif' 库来绘制动态图片。

单曲线动态图

先来看看单曲线动态图,效果如下:

实现上面视频中效果的核心代码如下:

@gif.frame
def plot(df,date):
    df = df.loc[df.index[0]:pd.Timestamp(date)]
    fig, (ax1) = plt.subplots(1,figsize=(20,10),dpi=100)
    ax1.plot(
        df.close, marker='o',
        linestyle='--',
        linewidth=3,
        markersize=15,
        color = 'tab:blue'
        )
    y_max = round(df.close.max()*1.05)
    y_min = round(df.close.min()*0.95)
    ax1.set_title('沪深300指数2015年至2020年月均指数点位',fontsize=30)
#     ax1.set_title('average close price of Hushen 300 index during 2010 to 2020', fontsize=30)
    ax1.set_xlim([START,END])
    ax1.set_ylim([y_min,y_max])
    ax1.set_ylabel('指数收盘点位', color='tab:blue', fontsize=20) 
    # 设置刻度字体大小
    ax1.tick_params(labelsize=16)

    
#### 创建动态图 ####
frames = []
for date in pd.date_range(start =START, end=END,freq='1M'):
    frame = plot(df_300_price,date)
    frames.append(frame)

效果是不是很赞啊,另外 3 种动态图的代码实现过程也是类似的,其效果如下:

分段分不同背景颜色的动态图

双曲线动态图

多图多曲线动态图

◆ ◆ ◆  ◆ ◆麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-40活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:

数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值