文章目录

  • 一、读取与保存文件
  • 二、将数据文件制成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线图)相关推荐

  1. Python数据可视化:pyecharts库绘制K线图

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者王小王-123 Python爬虫.数据分析.网站开发等案例 ...

  2. python k线图和指标_量化交易中,如何使用Python画K线、成交量、买卖点【邢不行】...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总] 请点击此处 这是邢不行第  68 ...

  3. Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】

    用mplfinance实现全功能动态交互式K线图 手把手用`python`+mplfinance实现高级K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信 ...

  4. Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】

    用python实现全功能动态交互式K线图 手把手用`python`一步步实现动态交互式K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信息的显示 添加完整 ...

  5. 用Python绘制专业的K线图【含源代码】

    使用Python绘制一幅专业的K线图,是量化投资和金融数据分析的必备功课. 下面我将从K线图简介.数据获取.K线图绘制及成交量绘制等方面,结合源代码,一步步实现专业K线图的绘制. K线图简介 K线图又 ...

  6. 【python量化交易学习】pandas获取mysql数据,使用pyecharts画K线图,ma移动均线。

    将pyecharts官方提供的数据源,替换成已经存在mysql中的数据.画出专业的k线图(k线+ma移动均线+交易额柱状图(单位是千)) 参考: [python量化交易学习]pandas获取tusha ...

  7. python股票量化交易(1)---K线图、均线与成交量绘制

    远思扬祖宗之德,近思盖父母之愆:上思报国之恩,下思造家之福:外思济人之急,内思闲己之邪. 本文目录 前言 获取股票的数据 绘制K线图 均线图 成交量 前言 都说2020年是牛市的起点,很显然对于数据来 ...

  8. 用PYTHON画图 看股票/数字货币的趋势分析 带你直观理解指标 K线图

    用PYTHON画图 看股票/数字货币的趋势分析 带你直观理解指标 本文章将用PYTHON 画图 以比特币(BTC)为例 进行画图分析 (小白向) Pycharm平台编写 所用到的python库 imp ...

  9. python打开文件夹中的tiff_浅谈python下tiff图像的读取和保存方法

    对比测试 scipy.misc和 PIL.Image和 libtiff.TIFF三个库 输入: 1. (读取矩阵) 读入uint8.uint16.float32的lena.tif 2. (生成矩阵) ...

最新文章

  1. 搜索引擎优化培训教程
  2. Linux监控命令之==free
  3. 计算机教师应该读的书籍,信息技术教师读书心得
  4. CodeForces - 165E Compatible Numbers(SOSdp)
  5. 被同事嘲笑说技术方案没深度?
  6. 实验1 熟悉实验环境
  7. IDEA里如何安装Python插件打造开发环境(图文详解)
  8. all方法 手写promise_我团队的一年前端实现Promise所有方法
  9. IT报表开发者必看:别加班了,快用这个神器提高报表开发效率
  10. 2017蓝桥杯C++B:等差素数列(枚举优化)
  11. 如何管理好IDC机房?(二) ----依靠技术还是管理
  12. C/C++[codeup 6120]String Subtraction
  13. 尚学堂马士兵linux教程之文件管理
  14. 查看linux的ubuntu版本,查看Ubuntu版本
  15. python绘画海贼王_Python爬虫之爬取海贼王全彩漫画图片
  16. 基于Python+网络爬虫的兼职招聘就业信息数据可视化分析
  17. Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例
  18. 计算机磁盘清理软件,清理磁盘空间的7种技巧,电脑装机、安装系统必备
  19. 大数据分析软件包含哪些技术?
  20. 警惕,贡献商业源码入群!专门针对程序员的一种网络诈骗!

热门文章

  1. python和access哪个难_python和access的区别
  2. python代码_零基础小白必看篇:Python代码注释规范代码实例解析操作(收藏)
  3. php charat,charAt(i) 函数
  4. html5表单注册应用
  5. java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)
  6. centos7系统引导自动重启_分享一个实用的脚本——全自动一键批量性安装Linux系统...
  7. 直接学python3_学习python用python2还是python3
  8. linux的常用的软件,Linux常用的软件和命令
  9. linux mysql异地备份工具,Linux中MySQL的异地自动备份
  10. linux 进程优先级 chrt,关于Linux进程优先级的一些疑问