【Python】 利用Matplotlib验证进出场点
来源:互联网 发布:java字符流读取视频 编辑:程序博客网 时间:2024/04/29 04:02
更新补充
数据来源请大家参考文章:原始数据
文章详细介绍了如何爬取所需数据,并保存至本地,另外此文操作的数据还需股价信息而链接(原始数据)所抓取的数据只是一部分,股价信息还未合并,待我找时间再全部更新补充出来吧,大家先谅解哈~~大家也可以自己爬取合并后再结合本文进行处理啊
===========================================很皮的分隔线================================
这是很久以前利用matplotlib绘制的图简单验证相关标的其LSI指标的吻合程度,当时写的过程比较粗糙,后面再择机修改吧 ~~ 各位可以大概参考参考~
准备工作
- 已经将融资融券标的的历史数据(包括股价信息)抓取到本地- 已经将数据预处理过- 所需库:numpy、matplotlib
正式处理
- 字体设置
提前考虑到后面可能会用到汉字做,故先设置字体font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) #可自定义
- 构建LSI指标 (细看文章链接:从融资融券数据挖掘个股绝佳买点)
LSI = [(float(x[3])*float(x[7])*100/float(x[6])+float(x[2]))/(float(x[4])*float(x[7])*100/float(x[6])+float(x[1]) +float(x[3]) * float(x[7]) * 100 / float(x[6]) + float(x[2]))for x in need_list[1:]][::-1]
- 创建一个figure对象
fig = plt.figure()ax = plt.gca()
- 图的绘制和处理
ax1 = fig.add_subplot(111)ax1.plot(LSI, 'r', label=u'LSI指标', linewidth=4)ax1.legend(loc=2, prop=font)ax1.set_ylabel(u'LSI刻度', fontproperties=font)
plt.title('%s'%code)
plt.grid() # 显示网格plt.subplots_adjust(bottom=0.16) # 图的底边距
ax2 = ax1.twinx()ax2.plot(MP, 'b', label=u'标的均价', linewidth=2)ax2.set_ylabel(u'标的刻度', fontproperties=font)ax2.legend(loc=1, prop=font)
- 根据需要保存至本地
plt.savefig('...\\png_result\%s.png'%code)
效果展示
- 当然,上面的只是作图过程中的几个相对重要的点,丑姑娘总是要见人的,将完整源码附在后面
# coding:utf-8# author:buracag_mcimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties# =====================设置字体====================#font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)def draw(code): f = open('...\result\\%s.csv'%code, 'r') linelist = f.readlines() f.close() # ==================后续做的list===================# need_list = [line.strip().split(',') for line in linelist] years = [x[0] for x in need_list[1:]] # print years LSI = [(float(x[3])*float(x[7])*100/float(x[6])+float(x[2]))/(float(x[4])*float(x[7])*100/float(x[6])+float(x[1]) +float(x[3]) * float(x[7]) * 100 / float(x[6]) + float(x[2]))for x in need_list[1:]][::-1] MP = [float(x[7]) * 100 / float(x[6]) for x in need_list[1:]][::-1] # ======创建一个figure对象======# fig = plt.figure() ax = plt.gca() lens = int(len(years)) # ======x轴间隔五个显示时期,根据实际选择=====# k = 0 while k in range(0, lens): if k % 5 != 0: years[k] = '' k += 1 plt.xticks(np.linspace(0, lens)) # x轴上还是有len(years)个刻度 ax.set_xticklabels(years, rotation=90) # 旋转90度,实际选择 # ax.xaxis.set_major_locator( MultipleLocator(5)) 主刻度 # ax.xaxis.set_minor_locator( MultipleLocator(1)) 次刻度 ax1 = fig.add_subplot(111) ax1.plot(LSI, 'r', label=u'LSI指标', linewidth=4) ax1.legend(loc=2, prop=font) ax1.set_ylabel(u'LSI刻度', fontproperties=font) plt.title('%s'%code) plt.grid() # 显示网格 plt.subplots_adjust(bottom=0.16) # 图的底边距 ax2 = ax1.twinx() ax2.plot(MP, 'b', label=u'标的均价', linewidth=2) ax2.set_ylabel(u'标的刻度', fontproperties=font) ax2.legend(loc=1, prop=font) plt.savefig('...\\png_result\%s.png'%code) print '%s已经完成'%codeif __name__ == '__main__': list = [ ] #stock_list for i in list: draw(i)
注意事项
- 最后,提醒一下:
1. 大家将最后运行的list按需补上
2. 数据数据当时是用的绝对路径,大家可自行修改
1 0
- 【Python】 利用Matplotlib验证进出场点
- 【python 可视化】python利用matplotlib库绘制散点图案例
- Android界面进出场动画
- 【python】matplotlib生成散点矩阵图
- Python调用Matplotlib绘制分布点图
- python—利用matplotlib库画图
- 利用python的matplotlib绘制分布图
- python中利用matplotlib模块画散点图
- Python利用matplotlib做图中图及次坐标轴
- 【python 可视化】python利用matplotlib库绘制饼图案例
- Python调用Matplotlib绘制分布点并且添加标签
- 『python工作』matplotlib 库的一些注意点
- python.matplotlib/random.choice学习范例-随机生成点图
- Python 中利用 matplotlib 进行曲线的部分填充 fill_betweenx
- 利用matplotlib在python上绘制3D散点图
- 利用 python numpy +matplotlib 绘制股票k线图
- python matplotlib
- Python-Matplotlib
- TensorFlow笔记2:Ubuntu系统+Tensorflow-gpu环境搭建
- Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
- node.js的项目
- 解决ViewPager和SlidingPaneLayout的事件冲突
- Unity Android真机调试
- 【Python】 利用Matplotlib验证进出场点
- Android ViewPager和SlidingPaneLayout的滑动事件冲突处理方法
- Rxjava2源码浅析(三)
- shell脚本之运算符(四)
- 算法训练 完数
- javascript之DOM
- bat(1)-dos入门
- vagrant 安装
- fflush函数有什么作用?