繁体   English   中英

熊猫中的动画图

[英]Animated graphs in pandas

我有一张桌子,

runs  opposition  date 
10  team A  01 aug 2020
23  team B  13 sep 1975
76  team C  03 Jan 1999 
92  team A  01 aug 1982 
12  team C  01 aug 2020 
100  team B  01 aug 2008 
83  team A  01 aug 2005 
93  team B  01 aug 2006 
23  team B  01 aug 2011 
11  team A  01 aug 2019  

我想绘制一个动画图,该图将根据日期、团队、运行(为团队添加运行)进行动画处理

注意:可能我想创建动画图,如https://pythonawesome.com/animated-plotting-extension-for-pandas-with-matplotlib/

我们如何为 table 或 df 绘制这样的动画图?

您可以使用情节动画

fig = px.scatter(df, x="date", y="runs", animation_frame="opposition")
fig.update_traces(marker_size=40) # increase marker size
fig.write_html("fig.html") # export as html file

这给你(这里只有静态图像......):

在此处输入图片说明

我使用问题中提到的 pandas_alive 创建了一个动画。 我正在使用您的示例数据的扩展,由于 gif 图像尺寸较大,我无法发布,但您可以尝试在您自己的环境中运行它。

pip install pandas_alive # import 

import pandas as pd
import numpy as np
import random
import pandas_alive

names = ['team A','team B','team C','team E', 'team F']
df = pd.DataFrame({'date': pd.date_range('2020-05-01','2021-11-01', freq='1m'),
                  'name': random.choices(names, k=18),
                  'runs': np.random.randint(0,150,18)})

df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
df = df.pivot(columns='name')
df.columns = df.columns.droplevel()

df.head()
name    team A  team B  team C  team E  team F
date                    
2020-05-31  125.0   NaN     NaN     NaN     NaN
2020-06-30  NaN     NaN     NaN     98.0    NaN
2020-07-31  NaN     NaN     NaN     125.0   NaN
2020-08-31  NaN     NaN     NaN     75.0    NaN
2020-09-30  NaN     NaN     NaN     126.0   NaN

df.fillna(0).plot_animated('test_animate.gif', period_fmt='%Y-%m', title='Test Bar chart race')

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM