python绘制股票k线图

首页 > 财经 > 正文 2021-08-04

发表自话题:k线图坐标上的数字

使用python绘制股票k线图,该例子从本地加载的数据


import numpy as np
import matplotlib.pyplot as plt

引入finance模块自带的财经数据

from matplotlib.finance import quotes_historical_yahoo_ohlc

from matplotlib.dates import YearLocator,MonthLocator,DateFormatter

引入时间

import time

引入finace中的k线绘制图方法

from matplotlib.finance import candlestick_ohlc

从本地读取数据

import pandas as pd

设置图形样式

plt.style.use('ggplot')

读取数据

df = pd.read_excel('testdata.xlsx')

取得时间数据和成交量

dates=df["dates"][1:].values.tolist()
volumns = df["counts"][1:].values.tolist()

取得开盘,结束,最低,最高的股票数据

open=df["open"][1:].values.tolist()
close=df["close"][1:].values.tolist()
low=df["low"][1:].values.tolist()
high=df["high"][1:].values.tolist()

将时间数据转换为数字,此处需要引入time模块

timestamp = [time.mktime(date.timetuple()) for date in dates]

组合形成quotes,在绘制k线图的时候需要

quotes = zip(timestamp,open,high,low,close)

定义坐标系位置(左下角坐标和长宽)

left,width = 0.1,0.8
rect_vol = [left,0.1,width,0.26]
rect_main = [left,0.4,width,0.5]

创建fig图形框

fig = plt.figure()

添加坐标系

ax_vol = fig.add_axes(rect_vol)

绘制成交量填充图

ax_vol.fill_between(dates,volumns,color='y')

如果从finmance中导入的数据,需要调整x轴时间的显示

ax_vol.xaxis_date()

plt.setp(ax_vol,get_xticklabels(),rotation=30,horizontalalignment='right')

添加k线坐标系

ax_main=fig.add_axes(rect_main)

绘制k线图,此处是quotes为上诉生成的quotes

candlestick_ohlc(ax_main,quotes=quotes,width=0.6,colorup='r',colordown='g')

得到x坐标轴设置x坐标显示为False

ax_main.axes.get_xaxis().set_visible(False)

设置title

ax_main.set_title('Stock INTC Price and Volume')

显示图形

plt.show()

figure_1.png

标签组:[python

上一篇球员能力图和股票K线图

下一篇excel做图怎么在x轴显示文字坐标 【百科全说】

相关阅读

相同话题文章

相关话题