Python - 从列表中绘制烛台

时间:2018-03-04 04:56:01

标签: python

新手在这里!我有一份清单。该列表包含200个这样的结构。该列表包含我想要绘制为烛台的财务值。像往常一样,我只想打开“打开”,“关闭”,“高”,“低”和“关闭时间”。

 [
    [
        1499040000000,      # Open time
        "0.01634790",       # Open
        "0.80000000",       # High
        "0.01575800",       # Low
        "0.01577100",       # Close
        "148976.11427815",  # Volume
        1499644799999,      # Close time
        "2434.19055334",    # Quote asset volume
        308,                # Number of trades
        "1756.87402397",    # Taker buy base asset volume
        "28.46694368",      # Taker buy quote asset volume
        "17928899.62484339" # Can be ignored
    ]
]

我想做两件事。一只手,绘制烛台。另一方面,在单独的数据结构上提取“音量”和“关闭时间”以进行进一步分析。

我该怎么办?我正在研究Matplot lib和数据结构。提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,为了更好地处理,您只能提取所需的5个值 让D成为整体数据结构,您可以提取“打开”,“关闭”,“高”,“低”,“关闭时间”,“卷”如下:

Open = map(lambda record: record[1], D)
Close = map(lambda record: record[4], D)
High = map(lambda record: record[2], D)
Low = map(lambda record: record[3], D)
CloseTime = map(lambda record: record[6], D)
Volume = map(lambda record: record[5], D)
当然,假设“打开”始终是第2项,“关闭”始终是第5项,依此类推。回想一下,Python使用基于0的索引,因此第2项具有索引1,第5项具有索引4,第1项具有索引0,依此类推。

然而,“打开”,“高”,“低”,“关闭”和“音量”是字符串,我认为你想要它们作为浮动(即数字)用于绘图目的。如果是这样的话

Open = [float(item) for item in Open]
Close = [float(item) for item in Close]
High = [float(item) for item in High]
Low = [float(item) for item in Low]
Volume = [float(item) for item in Volume]

据我所知,“关闭时间”已经是数字,因此不需要任何转换。

这基本上回答了帖子的第二部分,即“如何从这种数据结构中提取内容”。就绘图而言,根据matplotlib candlestick help page,你需要创建一个元组列表,其中每个元组包含一系列(时间,开放,关闭,高,低)。因此

quotes = [(CloseTime[i], Open[i], Close[i], High[i], Low[i]) for i in range(len(Close))]

然后你可以绘制烛台。

注意:如果没有最小的示例或更完整的数据子集,则很难完全复制您的问题。