2021-08-10

该博客使用matplotlib.pyplot绘制了中国平安、中国人保、中国人寿和新华保险近30天的股价趋势图。结果显示,中国平安下跌及反弹最为剧烈,而新华保险前期跌幅较小,后期反弹强劲,作者考虑加仓新华保险。代码中通过tushare获取历史数据,并进行了数据标准化处理,便于比较不同股票的趋势。
摘要由CSDN通过智能技术生成

保险股价趋势图分析

	测试了一下,matplotlib.pyplot  的作图 ,折线图趋势如下:
	中国平安下跌最快 ,反弹也是最猛的,看好新华保险,前期下跌幅度小,后期反弹凶猛,准备加仓 。

在这里插入图片描述
具体代码如下:

import pandas as pd
import numpy  as np  
import matplotlib.pyplot as plt
import tushare as ts
from datetime import datetime, timedelta


#解决中文显示问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

## 时间,日期 
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
end_date = datetime.now().strftime('%Y-%m-%d') 
bgn_date = (datetime.now()+timedelta(days=-30)).strftime("%Y-%m-%d")

## 股票代码,股票中文简称  
code_list = ['601318','601319','601628','601336']
name_list = ['中国平安','中国人保','中国人寿','新华保险']
## name_list  = ['pinan','renbao','rensou','xinhua']

dict_name = dict(zip(code_list,name_list))   

data_his_tmp    = pd.DataFrame()
data_his_record = pd.DataFrame()
close_data_sca  = pd.DataFrame()

## 获取股票前30天 收盘价 和 今天的实时价格 
def close_value_his(cde):
    data_his = pd.DataFrame()
    data_his = ts.get_hist_data(cde,start=bgn_date,end=end_date) 
    data_his['name'] = dict_name[cde]
    return data_his

def minmax_sca(data):
    """
    离差标准化
    data:传入的数据
    return:标准化之后的数据
    """
    new_data=(data-data.min())/(data.max()-data.min())
    return round(new_data,4)

## 数据导入
for key,value  in dict_name.items()  : 
    data_his_tmp = close_value_his(key)
    data_his_record=pd.concat([data_his_record,data_his_tmp]) 
    
print(now)

## 对收盘价做透视表汇总
close_data = pd.pivot_table(data_his_record,index=["date"],values=["close"],columns=["name"],aggfunc=[np.sum])
print(close_data.columns)

## 列名重置更新
col_new = [close_data.columns[0][2],close_data.columns[1][2],close_data.columns[2][2],close_data.columns[3][2]]
print(col_new)
close_data.columns = col_new 

## 数据标准化 
for col  in close_data.columns: 
    close_data_sca[col] = minmax_sca(close_data[col])

print(now)
print(close_data_sca.tail(5)) 

## 做图 
plt.figure(figsize=(20,10))
plt.title(u'保险股价趋势图') 
plt.xticks(rotation=45)

## 数据,线条,系列名 
for col_2  in close_data_sca.columns: 
    plt.plot(close_data_sca.index, close_data_sca[col_2],'-',label=col_2 )

plt.legend()  
plt.show()  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值