Exemple #1
0
    def _make_plot(self):
        from pandas.tseries.plotting import _decorate_axes, format_dateaxis
        plotf = self._get_plot_function()
        ax = self._get_ax(0)

        data = self.data
        data.index.name = 'Date'
        data = data.to_period(freq=self.freq)
        data = data.reset_index(level=0)

        if self._is_ts_plot():
            data['Date'] = data['Date'].apply(lambda x: x.ordinal)
            _decorate_axes(ax, self.freq, self.kwds)
            candles = plotf(data, ax, **self.kwds)
            format_dateaxis(ax, self.freq)
        else:
            from matplotlib.dates import date2num, AutoDateFormatter, AutoDateLocator
            data['Date'] = data['Date'].apply(lambda x: date2num(x.to_timestamp()))
            candles = plotf(data, ax, **self.kwds)
            locator = AutoDateLocator()
            ax.xaxis.set_major_locator(locator)
            ax.xaxis.set_major_formatter(AutoDateFormatter(locator))
Exemple #2
0
        def _ts_plot(cls, ax, x, data, style=None, **kwds):
            from pandas.tseries.plotting import (_maybe_resample,
                                                 _decorate_axes,
                                                 format_dateaxis)
            # accept x to be consistent with normal plot func,
            # x is not passed to tsplot as it uses data.index as x coordinate
            # column_num must be in kwds for stacking purpose
            freq, data = _maybe_resample(data, ax, kwds)

            # Set ax with freq info
            _decorate_axes(ax, freq, kwds)
            # digging deeper
            if hasattr(ax, 'left_ax'):
                _decorate_axes(ax.left_ax, freq, kwds)
            if hasattr(ax, 'right_ax'):
                _decorate_axes(ax.right_ax, freq, kwds)
            ax._plot_data.append((data, cls._kind, kwds))

            lines = cls._plot(ax, data.index, data.values, style=style, **kwds)
            # set date formatter, locators and rescale limits
            format_dateaxis(ax, ax.freq, data.index)
            return lines
    def _make_plot(self):
        from pandas.tseries.plotting import _decorate_axes, format_dateaxis
        plotf = self._get_plot_function()
        ax = self._get_ax(0)

        data = self.data
        data.index.name = 'Date'
        data = data.to_period(freq=self.freq)
        data = data.reset_index(level=0)

        if self._is_ts_plot():
            data['Date'] = data['Date'].apply(lambda x: x.ordinal)
            _decorate_axes(ax, self.freq, self.kwds)
            candles = plotf(data, ax, **self.kwds)
            format_dateaxis(ax, self.freq)
        else:
            from matplotlib.dates import date2num, AutoDateFormatter, AutoDateLocator
            data['Date'] = data['Date'].apply(lambda x: date2num(x.to_timestamp()))
            candles = plotf(data, ax, **self.kwds)

            locator = AutoDateLocator()
            ax.xaxis.set_major_locator(locator)
            ax.xaxis.set_major_formatter(AutoDateFormatter(locator))