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

##通过API获取股票的历史数据 id为股票的代号
def tiingo_history(id):
    headers = {
            'Content-Type': 'application/json',
            'Authorization' : 'Token dff6a6f94862a7ee9aaddb4748c3fd1739ab6bf5'
            }
    #获取股票历史信息
    requestResponse = requests.get("https://api.tiingo.com/tiingo/daily/"+id+"/prices?startDate=2018-01-02&token=dff6a6f94862a7ee9aaddb4748c3fd1739ab6bf5",headers=headers)
    # {'date': '2020-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}
    # '2020-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 是list
    result = 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] +=1
        else:
            dict[key]=1
            keylist.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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了多种数据可视化库,其中一种常用的是Matplotlib。Matplotlib是一个功能强大的绘图库,可以用来创建各种类型的图表,包括柱状图。 要使用Matplotlib创建柱状图,你需要先安装Matplotlib库。可以使用以下命令在Python中安装Matplotlib: ``` pip install matplotlib ``` 安装完成后,你可以使用以下代码创建一个简单的柱状图: ```python import matplotlib.pyplot as plt # 数据 x = ['A', 'B', 'C', 'D'] y = [10, 15, 7, 12] # 创建柱状图 plt.bar(x, y) # 添加标题和标签 plt.title('柱状图示例') plt.xlabel('类别') plt.ylabel('数量') # 显示图表 plt.show() ``` 这段代码首先导入了`matplotlib.pyplot`模块,并创建了一个简单的柱状图。`x`和`y`分别表示柱状图的横轴和纵轴数据。然后使用`plt.bar()`函数创建柱状图,再使用`plt.title()`、`plt.xlabel()`和`plt.ylabel()`函数添加标题和标签。最后使用`plt.show()`函数显示图表。 如果你想从Excel文件中读取数据并创建柱状图,可以使用`pandas`库来读取Excel文件,并将数据传递给Matplotlib进行绘图。以下是一个示例代码: ```python import pandas as pd import matplotlib.pyplot as plt # 从Excel文件中读取数据 data = pd.read_excel('data.xlsx') # 提取需要的列数据 x = data['类别'] y = data['数量'] # 创建柱状图 plt.bar(x, y) # 添加标题和标签 plt.title('柱状图示例') plt.xlabel('类别') plt.ylabel('数量') # 显示图表 plt.show() ``` 在这个示例中,我们使用`pandas`库的`read_excel()`函数从Excel文件中读取数据,并将需要的列数据提取出来。然后使用Matplotlib创建柱状图,并添加标题和标签,最后显示图表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值