《python编程:从入门到实践》16.2.6内容
由于2017年12月的数据不完整,只取1月到11月的数据。
需要将数据按月份、周数、周分几组,在计算每组的平均值。我们导入Python标准库中模块itertools的函数groupby,然后将x轴与y轴的数据合并、排序,再用函数groupby分组。分组之后,求出每组的均值,储存到xy_map变量之中。最后,将xy_map中存储的x轴与y轴数据分离。画图。
import json
from matplotlib import pyplot as plt
from itertools import groupby
#设置图标格式
plt.rcParams['font.sans-serif']=['SimHei'] #指定默认字体
plt.rcParams['axes.unicode_minus']=False #解决保存图像时符号-显示为方块的2问题
filename='btc_close_2017.json'
with open(filename) as f:
btc_data=json.load(f)
#创建5个列表,存储日期和收盘价
dates=[]
months=[]
weeks=[]
weekdays=[]
close=[]
#打印每一天的信息
for btc_dict in btc_data:
dates.append(btc_dict['date'])
months.append(int(btc_dict['month']))
weeks.append(int(btc_dict['week']))
weekdays.append(btc_dict['weekday'])
close.append(int(