python的matplotlib绘制动态图形(用animation中的FuncAnimation)

发布时间 2023-04-18 11:45:25作者: 哥的神码都是浮云

%matplotlib auto
# 数据透视表:
# 统计各月每天的刷卡金额之和
# month_day_df = pd.pivot_table(data_df,values="刷卡金额",index="日",columns="月份",aggfunc=np.sum)
# 用折线图表示1月份每天的刷卡金额之和
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation # 导入动画库
import random
import numpy as np
import pandas as pd
plt.rcParams["font.sans-serif"] = "SimHei"
fig = plt.figure(figsize=(12,8),dpi=80) # 画布
month_day_df = np.random.randint(10000,100000,size=(31,12)) # 生成随机测试数据
# 动画函数
def animate(i):
plt.gca().cla() # 清除屏幕
# 1.准备数据
x_data = [i for i in range(1,13)]
y_data = month_day_df[i+1]
color_v2 = random.choice(["red","blue","pink","purple","yellow","green","orange","black"])
# 2.绘制图形
plt.plot(x_data,y_data,linestyle="-.",color=color_v2)
# 添加标题"每月每天的刷卡金额总和折线图"
plt.title(f"{i+1}月的刷卡金额总和折线图",fontsize=20)
# 添加x轴标签"时间"
plt.xlabel("时间")
# 添加y轴标题"金额"
plt.ylabel("金额")
# 添加x轴刻度标签为x_data
plt.xticks(x_data)
plt.legend(["消费金额合计"],loc=0) # 图例
# 将数字放到折线上
for k in range(len(x_data)):
plt.text(x_data[k],y_data[k],y_data[k])
ani = FuncAnimation(fig=fig,func=animate,frames=12,interval=500)
# fig:在fig画布中绘制,func:动画函数,frames:循环多少次,interval:频率;
# 3.显示图形
plt.show()

 

# 日行一善:昨天我估计是起到作用了,安慰的他的心情了

# 日进一步:今天我的眼睛不是很疼了,我要想想自媒体怎么做,还有看看中考体育的相关内容