无法从Huobi json数据中绘制烛台数据

时间:2017-04-19 20:48:49

标签: json python-3.x date matplotlib candlestick-chart

import pandas as pd
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
from matplotlib.finance import candlestick_ohlc
import matplotlib.dates as mdates
import datetime as dt
import urllib
import json
from urllib.request import urlopen
import datetime as dt
import requests

dataLink ='http://api.huobi.com/staticmarket/btc_kline_015_json.js'
r = requests.get(dataLink)  # r is a response object.
quotes = pd.DataFrame.from_records(r.json())  # fetches dataset
quotes[0] = pd.to_datetime(quotes[0].str[:-3], format='%Y%m%d%H%M%S')  

#Naming columns
quotes.columns = ["Date","Open","High",'Low',"Close", "Vol"]

#Converting dates column to float values
quotes['Date'] = quotes['Date'].map(mdates.date2num)

#Making plot
fig = plt.figure()
fig.autofmt_xdate()
ax1 = plt.subplot2grid((6,1), (0,0), rowspan=6, colspan=1)

#Converts raw mdate numbers to dates
ax1.xaxis_date()
plt.xlabel("Date")
print(quotes)


#Making candlestick plot
candlestick_ohlc, (ax1,quotes.values,width=1,colorup='g',colordown='k',
alpha=0.75)

plt.show()

我正在尝试绘制由Huobi提供的json数据的烛台图表,但我无法对日期和日期进行排序。情节看起来很糟糕。你能用一个相当简单的术语来解释新手可能会理解我做错了吗?这是我的代码......

Thx,提前`

2 个答案:

答案 0 :(得分:0)

您可以在调用烛台功能后将fig.autofmt_xdate()置于某个位置;这将使日期看起来更好。

关于情节本身,您可以决定使条形稍微小一点width=0.01,这样它们就不会重叠。

然后,您可以决定放大一点,以交互方式或编程方式实际查看图表中发生的情况,

ax1.set_xlim(dt.datetime(2017,04,17,8),dt.datetime(2017,04,18,0))

答案 1 :(得分:0)

这归结为一个问题,即根据周期和时间确定的数据的粒度来制作烛台有多宽。 json feed的长度参数。你只需要使用candlestick_ohlc()中的width参数,直到图表看起来正确...