基于tushare指数日线行情数据的python可视化展示

今天主要来介绍获取Pandas DataFrame格式数据以后如何进行可视化展示(个人的tushareID:498867)

如果还没有注册tushare社区账号的,可以点击https://tushare.pro/register?reg=498867进行注册。

下面我以全指医药为例子,向大家展示获取一个指数日线行情后,进行可视化。

(1)首先进入tushare官网,点击数据工具,选择指数,然后点击指数日线行情,会出现下图

输入全指医药的代码,000991.SH,点击生成代码后,将代码复制到jupter notebook或者pycharm中。 


# 导入tushare
import tushare as ts
# 初始化pro接口
pro = ts.pro_api('个人token,每个人不一样')

# 拉取数据
df = pro.index_daily(**{
    "ts_code": "000991.SH",
    "trade_date": "",
    "start_date": "",
    "end_date": "",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "trade_date",
    "close",
    "open",
    "high",
    "low",
    "pre_close",
    "change",
    "pct_chg",
    "vol",
    "amount"
])
print(df)

(2)这里以jupter notebook为例子,代码复制运行后,会出现下图

可以看到,获取了4230行的数据,从2005年1月4号开始。由于数据最初始的在最下面,所以我们需要对数据进行重排,输入如下代码:

df=df.sort_values('trade_date')
df

 

(3)目前的索引仍然是0,1,2...如果说为了后续绘图即索引便利,可以将'trade_date'设置成索引,结果如图4。可以看到日期目前就成为了索引。

df1=df.set_index('trade_date')
df1

 

(4)导入绘图库matplotlib,并对中文字体进行设置,不设置如果图中有中文会乱码。

import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False   #绘图中文字体设置

(5)编写绘图函数plotdf(),y即为绘图的因变量,这里以收盘价close为例子,如果想换成其他,比如开盘价open,把y='close'改成y='open'就可。

def plotdf(date, df, path, distance, color,alpha):
    """
    :param date:日期名称
    :param df: df就是导入进来的表格、
    :param path:path是保存文件的路径
    :param distance:横坐标间隔
    :param color:颜色
    :param alpha:透明度
    :return:
    """
    ax1=df.plot(figsize=(16,9), y='close',rot=90, fontsize=6, xlim=(-5,len(date)), color=color,alpha=alpha)   #创建绘图对象
    ax1.set_title("时间序列") #设置标题
    ax1.set_xticks(range(0, len(date), distance)) #设置刻度范围
    ax1.set_xticklabels(date[0:len(date):distance]) #设置刻度标签
    plt.savefig(path,bbox_inches="tight",pad_inches=0,dpi=900) #保存高清图片,并去除白边,path是保存文件的路径
    plt.show()

这里主要是采用面向对象的方式进行绘图,ax1.set_xxx表示给对象ax1设置一个xxx属性,如ax1.set_title('时间序列')就表示把图名设置成“时间序列”。

对图表进行保存时,dpi越高,输出的图片精度越大,bbox_inches="tight",pad_inches=0,是为了去除图片多余的白边。这里要注意的是,plt.show()一定要在plt.savefig()之前,反正保存的图片为空白。

下面对plotdf()进行调用,得到图5结果。这里横坐标展示间距设置成为100,颜色设置为蓝色,透明度0.5。间距可以根据具体的数据量进行调整,不一定100

plotdf(df1.index,df1,r"D:\量化金融\全指医药\test1.png",100,'b',0.5)

 结果储存在'D:\量化金融\全指医药\'文件夹中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记忆手册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值