我用不同的颜色绘制了一个条形图,并且效果很好。但是,当我尝试用它制作动画时,它的表现却很奇怪。例如,如果我继续调整窗口的大小,则可以看到动画的更改,但是如果不调整动画窗口的大小,它将无法更新和刷新。我检查了每次迭代的值和颜色,它们都是正确的。
如果您觉得这是一个肤浅的问题,对不起,请问我如何解决? import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statistics as st
import matplotlib.animation as animation
color=['firebrick','firebrick','firebrick','firebrick']
a=[1400,1420,1440,1460]
b=[1000,5000,10000,5000]
y=1000
for i in [0,1,2,3]:
if y<b[i]:
color[i]='firebrick'
if y>b[i]:
color[i]='Blue'
def update(curr):
a=[1400,1420,1440,1460]
b=[1000,5000,10000,5000]
global color,y
# check if animation is at the last frame
if y > 10000:
a.event_source.stop()
plt.cla()
y=y+100
print(y)
for i in [0,1,2,3]:
if y<b[i]:
color[i]='firebrick'
if y>b[i]:
color[i]='Blue'
print(color)
plt.axis()
plt.gca().bar(a,b, align='center',color=color, capsize=10)
plt.gca().hlines(y, xmin=1400,xmax=1460, color='b')
fig = plt.figure()
%matplotlib qt
a = animation.FuncAnimation(fig, update, interval=1000)
答案 0 :(得分:0)
我刚决定将其保存为GIF文件,并且效果很好
a.save('Desktop/animation.gif', writer='imagemagick', fps=30)