Exemple #1
0
class PlotBarWithLine:
    def __init__(self):
        self.data = {{'label': []}, }
        self.titles = ''
        self.indexes = []
        self.bar = Bar()
        self.line = Line()
        self.overlap = Overlap()
        self.script_list = self.overlap.get_js_dependencies()

    def plot_bar_line(self, dat, tit, ind):
        self.data = dat
        self.titles = tit
        self.indexes = ind
        self.bar = Bar(self.titles)
        for label in self.data.keys():
            label_bar = '{}_B'.format(label)
            label_line = '{}_L'.format(label)
            self.bar.add(label_bar, self.indexes,
                         self.data[label],
                         is_label_show=True)
            self.line.add(label_line, self.indexes,
                          self.data[label],
                          is_label_show=True,
                          mark_point=['max', 'min'])
        self.overlap.add(self.bar)
        self.overlap.add(self.line)
        return self.overlap.render_embed()
Exemple #2
0
def the_data(fti):
    his_filters = {TrackIndex.fund_trackindexcode == fti}
    histories = TrackIndex.query.filter(*his_filters).order_by(
        TrackIndex.date).all()
    dates = []
    closes = []
    pe_ttms = []
    for history in histories:
        if history.pe_ttm != 0:
            dates.append(history.date[2:4] + '/' + history.date[5:7] + '/' +
                         history.date[8:10])
            closes.append('%.2f' % history.close)
            pe_ttms.append('%.2f' % history.pe_ttm)
        else:
            dates.append(0)
            closes.append(0)
            pe_ttms.append(0)
    # 柱状图
    bar_close = Bar()
    bar_close.add('POINT',
                  dates,
                  closes,
                  mark_point=[{
                      "coord": [dates[-1], closes[-1]],
                      "name": dates[-1]
                  }],
                  mark_point_textcolor='black',
                  is_more_utils=True)
    bar_pe = Bar()
    bar_pe.add('PE',
               dates,
               pe_ttms,
               mark_point=[{
                   "coord": [dates[-1], pe_ttms[-1]],
                   "name": dates[-1]
               }],
               mark_point_textcolor='black',
               is_more_utils=True)
    overlap = Overlap(width=1150, height=500)
    overlap.add(bar_pe)
    overlap.add(bar_close, yaxis_index=1, is_add_yaxis=True)
    return render_template('the_data.html',
                           fti=fti,
                           myechart=overlap.render_embed(),
                           host=REMOTE_HOST,
                           script_list=overlap.get_js_dependencies())