1. 程式人生 > >使用matplotlib繪製K線圖以及和成交量的組合圖

使用matplotlib繪製K線圖以及和成交量的組合圖

matplotlib提供了一些金融圖表主要用於視覺化歷史股票價格,或者類似的金融時間序列資料
在matplotlib.finance的子庫中也提供了獲取歷史資料的函式
版本matplotlib 2.2中,finance會被替換成mpl_finance,但是在2.0版本中
import matplotlib.finance as mpf仍可以使用
data = mpf.quotes_historical_yahoo('code',start, end)
但是web資料來源的資料不足以作為任何重要投資的決策基礎,本文中的資料通過tushare獲取
# -*- coding:utf-8 -*-
import matplotlib as mpl import tushare as ts import matplotlib.pyplot as plt import matplotlib.finance as mpf %matplotlib inline
# mpf.quotes_historical_yahoo_ohlc('601558.ss', (2014,1,1),(2014,6,6))
# 現在不能正常的從雅虎財經獲取歷史資料了,會出現httpError,本文中的資料通過tushare獲取
# HTTPError: HTTP Error 404: Not Found
wdyx = ts.get_k_data('002739'
,'2017-01-01') wdyx.info()
wdyx[:3]
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
date open close high low volume code
0 2017-01-03 54.010 54.070 54.110 53.711 30518.0 002739
1 2017-01-04 54.090 56.691 56.771 53.831 103953.0 002739
2 2017-01-05 56.302 56.591 57.080 55.924 65414.0 002739
# 由於資料不是通過,mpf.candlestick_ohlc()獲取的,所以日期的格式與,繪圖函式的不一致
# tushare回去的資料物件為DataFrame型別
# 所以要將格式轉換為mpf.candlestick_ohlc()能夠處理的浮點數格式
# 匯入兩個涉及的庫
from matplotlib.pylab import date2num
import datetime

# 對tushare獲取到的資料轉換成candlestick_ohlc()方法可讀取的格式
'''
data_list = []
for dates,row in hist_data.iterrows():
    # 將時間轉換為數字
    date_time = datetime.datetime.strptime(dates,'%Y-%m-%d')
    t = date2num(date_time)
    open,high,low,close = row[:4]
    datas = (t,open,high,low,close)
    data_list.append(datas)
'''
def date_to_num(dates):
    num_time = []
    for date in dates:
        date_time = datetime.datetime.strptime(date,'%Y-%m-%d')
        num_date = date2num(date_time)
        num_time.append(num_date)
    return num_time
# dataframe轉換為二維陣列
mat_wdyx = wdyx.as_matrix()
num_time = date_to_num(mat_wdyx[:,0])
mat_wdyx[:,0] = num_time
#         日期,   開盤,     收盤,    最高,      最低,   成交量,    程式碼
mat_wdyx[:3]
array([[736332.0, 54.01, 54.07, 54.11, 53.711, 30518.0, '002739'],
       [736333.0, 54.09, 56.691, 56.771, 53.831, 103953.0, '002739'],
       [736334.0, 56.302, 56.591, 57.08, 55.924, 65414.0, '002739']], dtype=object)
# 資料列的順序,從左至右是,開盤,收盤,最高,最低,成交量
# matplotlib.finance中有兩個函式,一個是candlestick_ochl(),剛好對應上邊的順序
# 另一個是candlestick_ohlc(),對應的是開盤,最高,最低,收盤的資料格式
# 接下來可以繪製K線圖了

fig, ax = plt.subplots(figsize=(15,5))
fig.subplots_adjust(bottom=0.5)
mpf.candlestick_ochl(ax, mat_wdyx, width=0.6, colorup='g', colordown='r', alpha=1.0)
plt.grid(True)
# 設定日期刻度旋轉的角度 
plt.xticks(rotation=30)
plt.title('wanda yuanxian 17')
plt.xlabel('Date')
plt.ylabel('Price')
# x軸的刻度為日期
ax.xaxis_date ()
###candlestick_ochl()函式的引數
# ax 繪圖Axes的例項
# mat_wdyx 價格歷史資料
# width    影象中紅綠矩形的寬度,代表天數
# colorup  收盤價格大於開盤價格時的顏色
# colordown   低於開盤價格時矩形的顏色
# alpha      矩形的顏色的透明度

png這裡寫圖片描述

 金融資料每日摘要圖表
 開盤價格和收盤價格由兩條水平線表示
fig, ax = plt.subplots(figsize=(15,5))
mpf.plot_day_summary_oclh(ax, mat_wdyx,colorup='g', colordown='r')
plt.grid(True)
ax.xaxis_date()
plt.title('wandayuanxian 17')
plt.ylabel('Price')

png這裡寫圖片描述

k線圖和成交量(柱狀圖)的組合圖表
fig, (ax1, ax2) = plt.subplots(2, sharex=True, figsize=(15,8))
mpf.candlestick_ochl(ax1, mat_wdyx, width=1.0, colorup = 'g', colordown = 'r')
ax1.set_title('wandayuanxian')
ax1.set_ylabel('Price')
ax1.grid(True)
ax1.xaxis_date()
plt.bar(mat_wdyx[:,0]-0.25, mat_wdyx[:,5], width= 0.5)
ax2.set_ylabel('Volume')
ax2.grid(True)

png

相關推薦

使用matplotlib繪製K以及成交量組合

matplotlib提供了一些金融圖表主要用於視覺化歷史股票價格,或者類似的金融時間序列資料 在matplotlib.finance的子庫中也提供了獲取歷史資料的函式 版本matplotlib 2.2中

mpandroidchart 繪製K 難點解決-高亮 連線 與 表格對齊

mpandroidchart 繪製K線圖 最少要處理高亮和對齊問題 先來個圖片看下效果 1、對齊 直接說重點,設定表格對齊的屬性,靠右顯示y軸就不說了 YAxis myYAxis = combinedChart.getAxisRight();

Numpy簡單繪製K實現上漲下跌效果圖(Python)

# 將原始資料中日-月-年格式的日期字串轉換為numpy可以處理的年月日格式 def dmy2ymd(dmy): dmy = str(dmy, encoding='utf-8') date = dt.datetime.strptime(dmy, '%d-%m-

一個matplotlibK +一個高效的畫圖工具Serborn

http://www.financecomputing.net/wordpress/?p=1047 Seaborn Matplotlib是Python主要的繪相簿。但是,我不建議你直接使用它,原因與開始不推薦你使用NumPy是一樣的。雖然Matplot

用Python爬取股票資料,繪製K並用機器學習預測股價(來自我出的書)

    最近我出了一本書,《基於股票大資料分析的Python入門實戰 視訊教學版》,京東連結:https://item.jd.com/69241653952.html,在其中用股票範例講述Python爬蟲、資料分析和機器學習的技術,大家看了我的書,不僅能很快用比較熱門的案例學好Python

Matplotlib學習---用seaborn畫直方圖核密度(histogram & kdeplot)

tro ima 直方圖 subplot 平滑 style 創建 hist detail 由於直方圖受組距(bin size)影響很大,設置不同的組距可能會產生完全不同的可視化結果。因此我們可以用密度平滑估計來更好地反映數據的真實特征。具體可參見這篇文章:https://bl

python畫散點以及矩陣散點plt.scatter()pd.scatter_matrix()詳解

plt.scatter() 引數 ​​​​​​ #plt.scatter() 散點圖 #plt.scatter(x,y,s=20,c = None,marker = 'o',cmap = none,norm = none,vmin = none,vmax = none,al

APP切流程APP切命名規範詳細完整版

con hdpi blog desktop src ron 優點 down tableview 轉自:http://www.25xt.com/appdesign/7339.html 我們都知道一套完整的 App 通常會有很多張切圖,不管是 iPhone 需要 1x、2

【Qt開發】更改應用程序任務欄

資源文件 同時 con 分享圖片 窗口圖標 程序 col 函數 ner 說明 實際開發過程中,生成的應用文件不會用默認的圖標,同時程序啟動後任務欄的圖標也需要修改,還有窗口的圖標,這樣顯得程序不那麽low。更改程序的圖標有多種方式,基於Qt Creator或vs開發的方式

用python的matplotlibnumpy庫繪製股票K成交量的整合效果(含量化驗證交易策略程式碼)

     在用python的matplotlib和numpy庫繪製股票K線均線的整合效果(含從網路介面爬取資料和驗證交易策略程式碼)一文裡,我講述了通過爬蟲介面得到股票資料並繪製出K線均線圖形的方式,在本文裡,將在此基礎上再引入成交量效果圖,並結合量價理論,給出並驗證一些交易策略

利用 python numpy +matplotlib 繪製股票k

# -- coding: utf-8 -- import requests import numpy as np from matplotlib import pyplot as plt from matplotlib import animation fig = plt.figure(figs

用python的matplotlibnumpy庫繪製股票K的整合效果(含從網路介面爬取資料驗證交易策略程式碼)

    本人最近在嘗試著發表“以股票案例入門Python程式語言”系列的文章,在這些文章裡,將用Python工具繪製各種股票指標,在講述各股票指標的含義以及計算方式的同時,驗證基於各種指標的交易策略,本文是第一篇,通過K線和均線案例講述Numpy,Maplotlib

Python視覺化中的Matplotlib(5.直方圖、條形以及的用法詳細的引數)

1.  直方圖   hist()      直方圖的引數只有一個X import matplotlib.pyplot as plt # 匯入繪圖模組 import numpy as np # 匯入需要生成資料的numpy模組 '

Echarts製作動態K分時

1 K線圖 <!DOCTYPE html> <html lang="en"> <#include "../header.ftl"> <body> <#include "../nav.ftl"> <div class=

用excl匯入資料檔案並用matplotlib畫箱提琴

import matplotlib.pyplot as plt import xlrd import numpy as np import time one_time =time.time() plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中

【原始碼分享】經典指標K系列之MACD

最近從經典技術指標開始學習量化策略,有些在talib中有打包好的函式,但我還是希望自己在編的過程中學習策略的思想、進一步改進基礎策略。今天學習了移動平滑異同平均線(Moving Average Convergence Divergence,簡稱MACD指標)策略。MACD是查拉爾·阿佩爾(Geral

python matplotlib繪製gif動以及儲存

python matplotlib繪製gif動圖以及儲存 標籤: python matplotlib 謹以此文紀念我兩天來的悲劇 昨天我用lstm擬合sin曲線,看到別人畫的做的動圖很好看,並且還能儲存下來,所以我也想做著玩一下,但是沒想到在網上各種教程都不太對,最後還

IOS端K系列之K-繪製蠟燭

k線系列目錄 檢視目錄請點選這兒 補充知識 K線雖然看上去複雜,但仔細觀察就會知道幾乎所有的k線無非由以下幾種組成: (1)蠟燭 (2)OHLC (3)線段 (4)帶狀 (5)圓形 除此之外還有其他的,都是比

WPF中使用amCharts繪製股票K

        本想自己用GDI繪圖, 通過資料直接繪製一張蠟柱圖, 但覺得這樣子的功能比較少, 所以到網上搜索一些能畫出K線圖的控制元件. 發現DynamicDataDisplay挺好的, 在它的開發截圖裡也發現可以繪製蠟柱圖, 但文件好像做的不是很好, 不知道怎麼用它來畫, 在尋找它比較好的例子的

Swift3實現的繪製股票K庫, FastImageCache提升圖片的載入渲染速度,Chameleon顏色框架

程式碼1:用Swift3實現的繪製股票K線庫 for iOS & macOS 程式碼地址:網頁連結 程式碼2:FastImageCache是Path團隊開發的一個開源庫,用於提升圖片的載入和渲染速度,讓基於圖片的列表滑動起來更順暢。 程式碼地址:網頁連結 程式碼3:Chameleon是一款輕量級但功能