Matplotlib:具有不同标记的单线图

时间:2016-10-14 08:26:55

标签: python matplotlib time-series

我的时间序列中有一个标记列表描绘了一笔交易。每个较大列表列表中的第一个索引是我希望我的标记在折线图上的索引。现在我想买一个不同的买卖标记

[[109, 'sell'],
 [122, 'buy'],
 [122, 'sell'],
 [127, 'buy'],
 [131, 'sell'],
 [142, 'buy'],
 [142, 'sell'],
 [150, 'buy']]

代码:

fig = plt.figure(figsize=(20,10))
ax = fig.add_subplot(1,1,1)
ax.set_ylim( min(timeSeriesList_1)-0.5, max(timeSeriesList_1)+0.5)
start, end = 0, len(timeSeriesList_index)
stepsize = 10
ax.xaxis.set_ticks(np.arange(start, end, stepsize))
ax.set_xticklabels(timeSeriesList_index2, rotation=50)

## change required here:
ax.plot(timeSeriesList_1, '-gD', markevery= [ x[0] for x in markers_on_list1])

这是我的图表的样子:

enter image description here

请告诉我,我怎样才能有买卖的不同标记。

1 个答案:

答案 0 :(得分:1)

创建两个新阵列,一个购买阵列和一个销售阵列,并使用不同的标记单独绘制它们。要创建两个数组,可以使用list-comprehension

buy = [x[0] for x in your_array if x[1]=='buy']
sell = [x[0] for x in your_array if x[1]=='sell']