1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python pandas 可视化初步使用 -- 股票价格区间天数统计柱状图

python pandas 可视化初步使用 -- 股票价格区间天数统计柱状图

时间:2023-08-03 22:22:38

相关推荐

python pandas 可视化初步使用 -- 股票价格区间天数统计柱状图

##通过API获取股票的历史数据 id为股票的代号def tiingo_history(id):headers = {'Content-Type': 'application/json','Authorization' : 'Token dff6a6f94862a7ee9aaddb4748c3fd1739ab6bf5'}#获取股票历史信息requestResponse = requests.get("/tiingo/daily/"+id+"/prices?startDate=-01-02&token=dff6a6f94862a7ee9aaddb4748c3fd1739ab6bf5",headers=headers)# {'date': '-04-03T00:00:00.000Z', 'close': 241.41, 'high': 245.7, 'low': 238.9741, 'open': 242.8, 'volume': 32470017, 'adjClose': 241.41, 'adjHigh': 245.7, 'adjLow': 238.9741, 'adjOpen': 242.8,'adjVolume': 32470017, 'divCash': 0.0, 'splitFactor': 1.0}# '-04-03T00:00:00.000Z', 'close': 30.78, 'high': 31.12, 'low': 30.13, 'open': 30.6, 'volume': 70059740, 'adjClose': 30.78, 'adjHigh': 31.12, 'adjLow': 30.13, 'adjOpen': 30.6, 'adjVolume': 70059740, 'divCash': 0.0, 'splitFactor': 1.0#日期,该日期的收盘价,最高价,最低价,开盘价,交易股票数量,资产调整后的收盘价,资产调整后的最高价,资产调整后的开最低价,资产调整后的开盘价,资产交易的股票数量,在“日期”支付的股息(请注意,“日期”将是股息的“到期日”),公司拆分、反向拆分或支付分配时用于调整价格的因素。# result 是listresult = requestResponse.json()return result

##绘制股价区间天数总计柱状图:横坐标是价格区间,纵坐标为统计天数def draw_frequency(id):data=tiingo_history(id)#list存放每天最高点和最低点的平均值dict={}#keylist存放所有的价格区间分布keylist=[]for i in range(len(data)):#每天的最高值与最低值的平均值avg=(float(data[i]['high'])+float(data[i]['low']))/2#价格区间key=str(math.ceil(avg))+'-'+ str(math.ceil(avg)+1)# print(key)if(key in dict.keys()):dict[key] +=1else:dict[key]=1keylist.append(key)last_dict = sorted(dict.items(),key=lambda d:d[0])index=sorted(keylist)#valuelist 存放所有的天数valuelist=[]for j in range(len(last_dict)):valuelist.append(last_dict[j][1])#price_days 最终按顺序整理统计出来的表[{price:'价格',days:'总计天数'},{}]price_days=[]for k in range(len(index)):dict={'price':index[k],'days':valuelist[k]}price_days.append(dict)# 使用pandas对数据进行清理df=DataFrame(price_days,index=index,columns=['days'])df.plot(kind='bar',title='股价区间总计天数柱状图')plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。