How do I plot only weekdays using Python's matplotlib candlestick?

前端 未结 2 834
一个人的身影
一个人的身影 2020-12-01 17:46

I\'m not managing to plot matplotlib.finance.candlestick without the weekends (blank spaces between every 5 candlesticks). The example from Matplotlib\'s website doesn\'t e

2条回答
  •  爱一瞬间的悲伤
    2020-12-01 17:52

    While @JMJR's answer works, I find this to be more robust:

    def plot(x):
        plt.figure()
        plt.title("VIX curve")
        def idx(val=[0]):
            val[0] = val[0] + 1
            return val[0]
        d = collections.defaultdict(idx)
        # give each date an index
        [d[t] for t in sorted(x.index.get_level_values('baropen_datetime').unique())]
        # use the index
        x['idx'] = [d[t] for t in x.index.get_level_values('baropen_datetime')]
        # plot using index
        x.groupby('code').apply(lambda y: plt.plot(y.idx.values,
                                                   y.close.values,
                                                   label=y.index.get_level_values('code')[0]))
        plt.legend()
        plt.show()
        plt.close()
    

提交回复
热议问题