我正在努力处理数据帧中的时间图。经过多次尝试和几乎所有的错误,我只用set_xtickslabels
绘制了刻度线,但日期与图表不匹配...在每个打印的刻度线上显示了列表中的下一项。并且,当指向图表日期时,其格式也不正确。这不是惊奇,因为用float绘制了这个。通过堆栈论坛上的所有这些阅读,我知道那个日期是一个对象,并试图以多种方式对其进行格式化,但仍未得到正确的解决方案。那么如何正确执行或在哪里寻找解决方案呢?
这是我遇到的困难和错误的历史(肯定不是全部):
def getCandles(df, ax):
ohlc = df[['open_time','o', 'h', 'l', 'c', 'v']].copy()
ohlc['open_time'] = ohlc['open_time'].values.astype(float)
ohlc['o'] = ohlc['o'].astype(float)
ohlc['h'] = ohlc['h'].astype(float)
ohlc['l'] = ohlc['l'].astype(float)
ohlc['c'] = ohlc['c'].astype(float)
ohlc['v'] = ohlc['v'].astype(float)
candlestick_ohlc(ax, ohlc.values, width = 0.8, colorup="#77d879", colordown="#db3f3f")
plt.xlabel('TIME')
plt.ylabel('PRICE')
plt.tight_layout()
plt.show()
编辑:我在这里找到了解决方案:https://stackoverflow.com/a/41822115/6635518
谢谢大家的帮助。
答案 0 :(得分:0)
您正在将所有内容都转换为浮点值,包括open_time
。
由于您的日期格式是以毫秒为单位的纪元,因此下面的代码将纪元转换为日期时间字符串。
# Datetime from epoch in milliseconds
ohlc['open_time'] = pd.to_datetime(ohlc['open_time'], unit='ms')
Check the docs以匹配日期格式。