コード例 #1
0
    def get_suit_rank_date_chart(self, config):
        path_to_chart = 'suit_rank_date_chart'
        daily_tt_data = self.get_report_data()
        chart_title = "Suit/Rank Clustering by Date"
        if self.CONFIG_START_DATE in config:
            daily_tt_data = self.filter_by_date(config[self.CONFIG_START_DATE],
                                                config[self.CONFIG_END_DATE],
                                                daily_tt_data)
            chart_title = "Suit and Rank Plot for the Date Range of {} -- {}".format(
                config[self.CONFIG_START_DATE], config[self.CONFIG_END_DATE])

        # each suit is a key in a dict, each val is a list containing these as items:
        # (datetime(2013, 1, 2), 300)
        #           (yyyy,m,d), rank
        chart_data_set = {}
        for dtt in daily_tt_data:
            data = daily_tt_data[dtt]

            (month, day, year) = data['date'].split("/")
            # datetime and card obj
            import datetime
            dailytt_date = datetime.date(int(year), int(month), int(day))
            card = Card()
            try:
                card.suit = data[self.REPORT_TERM_SUIT]
                card.rank = int(data[self.REPORT_TERM_RANK])
            except KeyError as kex:
                print('caught bad key {} for data {} with id {}'.format(
                    kex, data, dtt))
            dt = Daily_TT(dailytt_date, card)
            chart_keys = chart_data_set.keys()
            if card.suit in chart_keys:
                chart_data_set[card.suit].append((dt.date, dt.card.rank))
            else:
                chart_data_set[card.suit] = [(dt.date, dt.card.rank)]

        logging.info('suits by date data looks like: {}'.format(
            str(chart_data_set)))

        return self.get_date_xy_chart(data=chart_data_set)