python——plt.figure()画子图(双轴图)双Y轴实例
程序员文章站
2022-05-27 16:01:24
...
话对比图,如果两个数量级的纵坐标,我们要进行趋势比较,放在同一坐标轴,某一个往往被压缩的的很小。所以需要左右双Y轴画图。
1.随便获取数列,对应的索引化成一样就可以了,下面是量化的数据处理,可以不用看,只要能化成这里的输出类型就可以了。
# coding=utf-8
import math
import tushare as ts
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import talib
import pandas as pd
from datetime import datetime, date
matplotlib.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['SimHei']
ts.set_token('19fbtoken码.e0')#需要注册tushar pro 获取token码 [获取地址](#https://tushare.pro/register?reg=385920)
pro = ts.pro_api()
#读取数据
star='2010Q1'
end='2020Q1'
start_cpi='200601'
end_cpi='202003'
start_time='20060301'
end_time="20200531"
dcc= pro.cn_cpi(start_m=start_cpi, end_m=end_cpi)#,fields='nt_yoy')
df1 = pro.cn_gdp(start_q=star, end_q=end)
dsc1 = pro.index_daily(ts_code='000300.SH', start_date=start_time, end_date=end_time,fields='ts_code,trade_date,close')
dsp = pro.index_daily(ts_code='NHCI.NH', start_date=start_time, end_date=end_time,fields='ts_code,trade_date,close')
dsb = pro.index_daily(ts_code='000012.SH', start_date=start_time, end_date=end_time,fields='ts_code,trade_date,close')
def mon_fun(dsb):
dsb.index = pd.to_datetime(dsb.trade_date,format="%Y-%m")#转换成datetime类型的
dsbb=dsb.resample("M").mean()
return dsbb
dsbb=mon_fun(dsb)
dscc1=mon_fun(dsc1)
dspp=mon_fun(dsp)
dsbb.rename(columns={"close":"close_b"},inplace=True)
dscc1.rename(columns={"close":"close_c"},inplace=True)
dspp.rename(columns={'close':'close_p'},inplace=True)
dcc.index=pd.to_datetime(dsbb.index,format="%Y-%m")
输出同索引的DataFrame
2.设置图的尺寸、还有画上证国债指数和CPI同比变化的对比图(主图)
fig = plt.figure(figsize=(10,6))
ax1 = fig.add_subplot(111)
ax1.plot(dscc1.close_c,)
ax1.set_ylabel('上债综合指数闭盘价',fontdict={'weight': 'normal', 'size': 15})
ax1.set_title("上债综合指数与CPI同比变化对比图",fontdict={'weight': 'normal', 'size': 15})
3.画子图
ax2 = ax1.twinx() # this is the important function
ax2.plot( dcc.nt_yoy , 'r')
ax2.set_ylabel('CPI全国同比',fontdict={'weight': 'normal', 'size': 15})
ax2.set_xlabel('Same')
plt.show()
4.效果
5.在比如画南华商品指数与CPI的变化对比,只需改动坐标ax1
################数据x坐标轴需要两个相同。共享的X轴###################
fig = plt.figure(figsize=(10,6))
ax1 = fig.add_subplot(111)
ax1.plot(dspp.close_p,)
ax1.set_ylabel('南华指数闭盘价',fontdict={'weight': 'normal', 'size': 15})
ax1.set_title("南华指数与CPI同比变化对比图",fontdict={'weight': 'normal', 'size': 15})
ax2 = ax1.twinx() # this is the important function
ax2.plot( dcc.nt_yoy , 'r')
ax2.set_ylabel('CPI全国同比',fontdict={'weight': 'normal', 'size': 15})
ax2.set_xlabel('Same')
#参数rotation设置坐标旋转角度,参数fontdict设置字体和字体大小
#ax1.set_xticklabels(rotation=90,fontdict={'weight': 'normal', 'size': 15})
plt.show()
5.结果
其他量化策略代码,获取token 后可以直接用
1.python量化——alpha股票-指数期货对冲策略
2.多因子选股策略
3.海龟交易策略
4.移动平均策略——单/双均线策略
5.改进的美林时钟策略(一)
5.改进的美林时钟策略(二)
6.改进的美林时钟策略(三)