我最近编写了一个程序来抓取日志并展示其中最常用单词的 matplotlib.pyplot.bar
图形。
import re
from datetime import datetime
from collections import Counter
import matplotlib.pyplot as plt
from matplotlib import animation
def read_log(path, index, separator=chr(9)):
data = []
my_file = open(path,"r+")
rows = my_file.readlines()
for row in rows:
line = re.sub(r'\r\n|\r|\n','',row, flags=re.M)
if line != '':
data.append(line.split(separator)[index])
my_file.close()
return Counter(data)
def set_plot(counter_data):
plt.title('This is a title')
plt.bar(range(len(counter_data)), list(counter_data.values()), align='center')
plt.xticks(range(len(counter_data)), list(counter_data.keys()))
plt.tight_layout()
plt.show()
counter_data = read_log(r'logfile.txt',2)
print(counter_data)
set_plot(counter_data)
我很想实现这个动画效果,但是我无法理解 animation.FuncAnimation()
你能帮我一下吗?
我添加了以下这些代码:
fig = plt.Figure()
animation.FuncAnimation(fig, set_plot(counter_data), frames=20)
删除了plt.show()
这样我就可以给FuncAnimation一个空的图形(fig)和函数,但它不起作用。编辑:它也不会打印错误。