【问题标题】:Charting with Candlestick_OHLC使用 Candlestick_OHLC 绘制图表
【发布时间】:2016-02-28 00:18:54
【问题描述】:
import pandas as pd 
import numpy as np
from matplotlib.finance import candlestick_ohlc
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.ticker as mticker
import io
import datetime
import urllib
import urllib.request
%matplotlib notebook


urlToVisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/GOOG/chartdata;
              type=quote;range=1y/csv'

with urllib.request.urlopen(urlToVisit) as response:
    sourcePage = response.read().decode('utf-8')


df = pd.read_csv(io.StringIO(sourcePage), skiprows=18, header=None, sep=",", 
                 names=['date','closeP','highP','lowP','openP','volume'],
                 index_col= 0, parse_dates= True)

if 'volume' not in df:
        df['volume'] = np.zeros(len(df))

DATA = df[['openP', 'highP', 'lowP', 'closeP','volume']].values

f1 = plt.subplot2grid((6,4), (1,0), rowspan=6, colspan=4, axisbg='#07000d')
candlestick_ohlc(f1, DATA, width=.6, colorup='#53c156', colordown='#ff1717')

f1.grid('on')
f1.xaxis.set_major_locator(mticker.MaxNLocator(15))
f1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.subplots_adjust(left=.09, bottom=.14, right=.94, top=.95, wspace=.20, hspace=0)
plt.xlabel('Date')
plt.ylabel('Stock Price')
plt.show()

所以问题来了,当我尝试绘制“candlestick_ohlc”时,它只绘制了音量条形图! (为什么会这样?)我在想问题可能与我的约会有关?我正在使用 iPython Notebook 顺便说一句。我的source is from - Yahoo Finance。如果你注意到了,我跳过了前 18 行,这样我就可以直接看到实际数据本身,它看起来像:

20150302,569.7757,570.5834,557.2202,558.9953,2129600
20150303,572.0694,573.8146,564.9689,568.8881,1704700
20150304,571.8001,575.5299,566.4548,570.3043,1876800
20150305,573.7548,576.3277,571.8400,573.4456,1389600
20150306,566.1307,575.1011,565.2082,573.3060,1659100
20150309,567.2925,568.7086,561.9921,565.3079,1062100

日期、收盘价、最高价、最低价、开盘价、成交量

有什么想法吗?非常感谢任何帮助!

【问题讨论】:

    标签: python-3.x pandas matplotlib yahoo-finance


    【解决方案1】:

    所以在@DSM的帮助下,

    DATA = df[['openP', 'highP', 'lowP', 'closeP','volume']]
    DATA = DATA.reset_index()
    DATA["date"]  = DATA["date"].apply(mdates.date2num)
    
    f1 = plt.subplot2grid((6,4), (1,0), rowspan=6, colspan=4, axisbg='#07000d')
    candlestick_ohlc(f1, DATA.values, width=.6, colorup='#53c156', colordown='#ff1717')
    

    解决了问题!归功于他。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2015-06-08
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      相关资源
      最近更新 更多