用 Python 繪制股票的K線圖


利用python的matplotlib.finance包中的candlestick方法可以很方便的畫出股票的K線圖(蠟燭圖)

candlestick分兩種:

candlestick_ochl 和 candlestick_ohlc,其本質是一樣的,只是需要的dataframe中數據的順序不同。

candlestick_ochl:需要的數據結構為(date,open,close,high,low) 既:日期,開盤價,收盤價,最高價,最低價

candlestick_ohlc:需要的數據結構為(date,open,high,low,close)

 

以下以600000為例,plot其70個交易日的K線圖

from matplotlib import pyplot as plt
import matplotlib.finance as mpf
from matplotlib.pylab import date2num
import pandas as pd
import datetime

%matplotlib inline

quotes = []
stock = pd.read_csv('data/stock_daily_inversed/SH/600000.csv',index_col=0)

for row in range(70):
    if row == 0:
        sdate = str(stock.loc[row,'trade_date']) # 注意:loc返回數值,iloc返回dataframe
        sdate_change_format = sdate[0:4]+'-'+sdate[4:6]+'-'+sdate[6:]
        sdate_num = date2num(datetime.datetime.strptime(sdate_change_format,'%Y-%m-%d')) #日期需要特定形式,這里進行轉換
        sdate_plt = sdate_num
    else:
        sdate_plt = sdate_num + row
        
    sopen = stock.loc[row,'open']
    shigh = stock.loc[row,'high']
    slow = stock.loc[row,'low']
    sclose = stock.loc[row,'close']
    datas = (sdate_plt,sopen,shigh,slow,sclose) # 按照 candlestick_ohlc 要求的數據結構准備數據
    quotes.append(datas)

fig, ax = plt.subplots(facecolor=(0, 0.3, 0.5),figsize=(12,8))
fig.subplots_adjust(bottom=0.1)
ax.xaxis_date()
plt.xticks(rotation=45) #日期顯示的旋轉角度
plt.title('600000')
plt.xlabel('time')
plt.ylabel('price')
mpf.candlestick_ohlc(ax,quotes,width=0.7,colorup='r',colordown='green') # 上漲為紅色K線,下跌為綠色,K線寬度為0.7
plt.grid(True)

plot出來的圖長這樣


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM