Python之数据分析(Numpy中读取与保存数据文件、将数据文件制成K线图)
文章目录
- 一、读取与保存文件
- 二、将数据文件制成K线图
一、读取与保存文件
1、读取文件格式
numpy.loadtxt(文件名,delimiter = 分割符,usecols = 选择列,unpack = 是否解包(True/False),dtype = 目标类型,converters = 转换器
)
- unpack = False:最终会输出一个二维数组
- unpack = True:一列一维数组的集合
2、保存文件格式
numpy.savetxt(文件名,二维数组,delimiter = 分隔符,fmt=格式
)
3、练习代码
import numpy as np
a = np.arange(1, 10).reshape(3, 3) # 3行3列的二维数组# 保存文本文件
# np.savetxt(r"0=数据源/test1.csv", a, delimiter=',', fmt="%d") # %d表示整数格式# 读取文本文件,全部读取
# read_txt = np.loadtxt(r"0=数据源/test1.csv", delimiter=',', dtype='i4') # 表示4字节整数# 读取第0列和第二列
# read_txt = np.loadtxt(r"0=数据源/test1.csv", delimiter=',', usecols=(0, 2), dtype='i4') # 表示4字节整数
# print(read_txt)# 读取并解包:解包成两个一维数组
v1, v2 = np.loadtxt(r"0=数据源/test1.csv", delimiter=',', usecols=(0, 2), unpack=True, dtype='i4') # 表示4字节整数
print(v1, v2)
二、将数据文件制成K线图
1、K线图概念
From秒懂百科:
股市及期货市场中的K线图的画法包含四个数据,即开盘价、最高价、最低价、收盘价,所有的k线都是围绕这四个数据展开,反映大势的状况和价格信息。如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图、月K线图。
2、数据文件的准备
我们都知道,Numpy默认支持的就是csv文件,这种数据文件是以“,”逗号分隔开字段的,也就是在同一行里面,逗号分隔开的就是不同列。
3、测试代码
import datetime as dt
import numpy as np
import matplotlib.pylab as mp
import matplotlib.dates as md# 转换时间格式
def dmy2ymd(dmy):dmy = str(dmy, encoding='utf-8')# 利用python能够解析日-月-年的时间格式,来解析成时间信息,再转化成年-月-日的numpy时间格式date = dt.datetime.strptime(dmy, '%d-%m-%Y').date() # 得到日期子对象ymd = date.strftime('%Y-%m-%d') # 将时间信息格式化成字符串return ymd# 解包取出:时间,开盘价,最高价,最低价,收盘价
dates, opening_prices, highest_prices, lowest_prices, closing_prices = np.loadtxt('0=数据源/beer_price.csv', delimiter=',',usecols=(0, 1, 2, 3, 4), unpack=True,dtype='M8[D], f8, f8, f8, f8',converters = {0:dmy2ymd}
)
# M是numpy 的时间数据类型,[]表示精度,D是日,以日为单位的时间
# 由于数据内时间格式是日-月-年,需要用converter转化成年月日
# {0:dmy2ymd}表示将第0列的数据全部用dmy2ymd执行一遍
# print(opening_prices)# 图像基本参数
mp.figure('CandleStick', facecolor='lightgray')
mp.title('CandleStick', fontsize=20)
mp.xlabel('Date', fontsize=14) # 横轴、纵轴的标签
mp.ylabel('Price', fontsize=14)# 坐标轴设置
ax = mp.gca() # 获取坐标轴
# 设置主、副刻度定位器
ax.xaxis.set_major_locator(md.WeekdayLocator(byweekday=md.MO) # 星期定位器,MO(Monday)表示以星期一作为主刻度定位
)
ax.xaxis.set_minor_locator(md.DayLocator() # 日定位器
)
# 日期的格式
ax.xaxis.set_major_formatter(md.DateFormatter('%d %b %Y'))
mp.tick_params(labelsize=10) # 设置标签所用的字体
mp.grid(linestyle=':') # 网格线# 将日期转换成matplotlib.dates(md)的类型
dates = dates.astype(md.datetime.datetime)# 获取价格差:数组相减再做判断等于一个装满布尔值的数组
rise = closing_prices - opening_prices >= 0.01 # 上涨
fall = opening_prices - closing_prices >= 0.01 # 下跌# 确定每根K线的颜色
# 初始化颜色数组为0,个数为dates的个数,颜色数据格式是3个float
fc = np.zeros(dates.size, dtype='3f4') # 填充色
ec = np.zeros(dates.size, dtype='3f4') # 边框色
fc[rise], fc[fall] = (1, 1, 1), (0, 0.5, 0)
# 将fc中为真的(上涨)设置颜色为(1, 1, 1)白色,下跌的设置为(0, 0.5, 0)绿色
ec[rise], ec[fall] = (1, 0, 0), (0, 0.5, 0)# 画引线:矩形条
mp.bar(dates, highest_prices-lowest_prices, 0, lowest_prices, color=fc, edgecolor=ec)
# 纵坐标是最高价-最低价(数组),0表示矩形条宽度(最窄),1表示最宽;
# 起点位以最低价为起点,边框颜色是ec
mp.bar(dates, closing_prices-highest_prices, 0.8, opening_prices, color=fc, edgecolor=ec)# 自动格式化水平方向的日期
mp.gcf().autofmt_xdate()
mp.show()
4、测试效果
最终就绘制成这样一个K线图
Python之数据分析(Numpy中读取与保存数据文件、将数据文件制成K线图)相关推荐
- Python数据可视化:pyecharts库绘制K线图
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者王小王-123 Python爬虫.数据分析.网站开发等案例 ...
- python k线图和指标_量化交易中,如何使用Python画K线、成交量、买卖点【邢不行】...
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第 68 ...
- Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】
用mplfinance实现全功能动态交互式K线图 手把手用`python`+mplfinance实现高级K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信 ...
- Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】
用python实现全功能动态交互式K线图 手把手用`python`一步步实现动态交互式K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信息的显示 添加完整 ...
- 用Python绘制专业的K线图【含源代码】
使用Python绘制一幅专业的K线图,是量化投资和金融数据分析的必备功课. 下面我将从K线图简介.数据获取.K线图绘制及成交量绘制等方面,结合源代码,一步步实现专业K线图的绘制. K线图简介 K线图又 ...
- 【python量化交易学习】pandas获取mysql数据,使用pyecharts画K线图,ma移动均线。
将pyecharts官方提供的数据源,替换成已经存在mysql中的数据.画出专业的k线图(k线+ma移动均线+交易额柱状图(单位是千)) 参考: [python量化交易学习]pandas获取tusha ...
- python股票量化交易(1)---K线图、均线与成交量绘制
远思扬祖宗之德,近思盖父母之愆:上思报国之恩,下思造家之福:外思济人之急,内思闲己之邪. 本文目录 前言 获取股票的数据 绘制K线图 均线图 成交量 前言 都说2020年是牛市的起点,很显然对于数据来 ...
- 用PYTHON画图 看股票/数字货币的趋势分析 带你直观理解指标 K线图
用PYTHON画图 看股票/数字货币的趋势分析 带你直观理解指标 本文章将用PYTHON 画图 以比特币(BTC)为例 进行画图分析 (小白向) Pycharm平台编写 所用到的python库 imp ...
- python打开文件夹中的tiff_浅谈python下tiff图像的读取和保存方法
对比测试 scipy.misc和 PIL.Image和 libtiff.TIFF三个库 输入: 1. (读取矩阵) 读入uint8.uint16.float32的lena.tif 2. (生成矩阵) ...
最新文章
- 搜索引擎优化培训教程
- Linux监控命令之==free
- 计算机教师应该读的书籍,信息技术教师读书心得
- CodeForces - 165E Compatible Numbers(SOSdp)
- 被同事嘲笑说技术方案没深度?
- 实验1 熟悉实验环境
- IDEA里如何安装Python插件打造开发环境(图文详解)
- all方法 手写promise_我团队的一年前端实现Promise所有方法
- IT报表开发者必看:别加班了,快用这个神器提高报表开发效率
- 2017蓝桥杯C++B:等差素数列(枚举优化)
- 如何管理好IDC机房?(二) ----依靠技术还是管理
- C/C++[codeup 6120]String Subtraction
- 尚学堂马士兵linux教程之文件管理
- 查看linux的ubuntu版本,查看Ubuntu版本
- python绘画海贼王_Python爬虫之爬取海贼王全彩漫画图片
- 基于Python+网络爬虫的兼职招聘就业信息数据可视化分析
- Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例
- 计算机磁盘清理软件,清理磁盘空间的7种技巧,电脑装机、安装系统必备
- 大数据分析软件包含哪些技术?
- 警惕,贡献商业源码入群!专门针对程序员的一种网络诈骗!
热门文章
- python和access哪个难_python和access的区别
- python代码_零基础小白必看篇:Python代码注释规范代码实例解析操作(收藏)
- php charat,charAt(i) 函数
- html5表单注册应用
- java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)
- centos7系统引导自动重启_分享一个实用的脚本——全自动一键批量性安装Linux系统...
- 直接学python3_学习python用python2还是python3
- linux的常用的软件,Linux常用的软件和命令
- linux mysql异地备份工具,Linux中MySQL的异地自动备份
- linux 进程优先级 chrt,关于Linux进程优先级的一些疑问