新手在这里!我有一份清单。该列表包含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和数据结构。提前谢谢。
答案 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))]
然后你可以绘制烛台。
注意:如果没有最小的示例或更完整的数据子集,则很难完全复制您的问题。