Пример #1
0
def line_markpoint_custom():
    x, y = Faker.choose(), Faker.values()
    obj_l = Line()
    obj_l.add_xaxis(x)
    obj_l.add_yaxis("商家A",
                    y,
                    markpoint_opts=opts.MarkPointOpts(
                        data=[opts.MarkPointItem(name="自定义标记点", coord=[x[2], y[2]], value=y[2])]
                    )
    )
    obj_l.set_series_opts(
        # 设置该参数,则x对应的y值会显示出来,该参数默认为True
        label_opts=opts.LabelOpts(is_show=False),
    )
    obj_l.set_global_opts(
        title_opts=opts.TitleOpts(title="Line-MarkPoint(自定义)",subtitle="自定义标注"),
        xaxis_opts=opts.AxisOpts(
            name="x轴",

            # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格
            boundary_gap=True,
            # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True)
        ),
    )
    return obj_l
Пример #2
0
def line_markline():
    obj_l = Line()
    obj_l.add_xaxis(Faker.choose())
    obj_l.add_yaxis("商家A",
                    Faker.values(),
                    markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
                    # 该参数设置在这里只对商家A起作用
                    label_opts=opts.LabelOpts(is_show=False)
                    )
    obj_l.add_yaxis("商家B",
                    Faker.values(),
                    markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
                    )

    obj_l.set_series_opts(
        # 该参数设置在这里对商家A,商家B都起作用
        # 设置该参数,则x对应的y值会显示出来,该参数默认为True
        label_opts=opts.LabelOpts(is_show=False),
    )
    obj_l.set_global_opts(
        title_opts=opts.TitleOpts(title="Line-MarkLine", subtitle="平均值的线"),
        xaxis_opts=opts.AxisOpts(
            name="x轴",

            # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格
            boundary_gap=True,
            # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True)
        ),
    )
    return obj_l
Пример #3
0
def createPlotLine(df, xAxisTitle, yAxisTitle, title=None):
    line = Line()
    line.add_xaxis(df[xAxisTitle].tolist())
    line.add_yaxis(yAxisTitle, df[yAxisTitle].tolist())
    
    if not title:
        title = ""
    line.set_global_opts(
        tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),
        title_opts=opts.TitleOpts(title=title)
    )

    ptg75 = df[yAxisTitle].quantile(.75)
    ptg50 = df[yAxisTitle].quantile(.5)
    ptg25 = df[yAxisTitle].quantile(.25)
    line.set_series_opts(
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(y=ptg75, name="75%"),
                opts.MarkLineItem(y=ptg50, name="50%"),
                opts.MarkLineItem(y=ptg25, name="25%")
            ]
        ),
    )

    return line
Пример #4
0
def generate_html():
    xlist = []
    ylist = []

    with open(filename, 'r') as f:
        r = csv.reader(f, dialect='excel')
        content = list(r)
        xlist.append(content[0][0])
        for i in range(1, len(content[0])):
            ylist.append([content[0][i]])
        for i in range(1, len(content)):
            xlist.append(content[i][0])
            for j in range(1, len(content[i])):
                ylist[j - 1].append(content[i][j])

    line = Line()
    line.add_xaxis(xlist[1:])
    for i in range(len(ylist)):
        line.add_yaxis(ylist[i][0], ylist[i][1:])
    line.set_global_opts(title_opts=opts.TitleOpts('CPU实时监测'))
    line.set_series_opts(markpoint_opts=opts.MarkPointItem(
        type_=['min', 'max']))
    line.set_global_opts(xaxis_opts=opts.AxisOpts(name=xlist[0]))
    line.set_global_opts(yaxis_opts=opts.AxisOpts(name='percent'))

    line.render(today + '_cpu.html')
Пример #5
0
def draw_balance_line(xaxis,
                      yaxis,
                      title="消费统计",
                      markline=None,
                      width=2000) -> Line:
    """
        x = [月_日, 月_日, 月_日, ....]
        y = [(title1, [num1, num2, num3, num4, ...]), (title2, [num1, num2, num3, num4, ...])]
        :param xaxis: x轴
        :param yaxis: y轴
        :param title: 标题
        :param markline: 标记辅助线
        :param width: 宽
        :return: Line
        """
    line = Line()
    line.add_xaxis(xaxis)
    for name, axis in yaxis:
        line.add_yaxis(name, axis, is_symbol_show=True)
    line.set_global_opts(title_opts=opts.TitleOpts(title=title, ),
                         datazoom_opts=[
                             opts.DataZoomOpts(range_start=0, range_end=100),
                             opts.DataZoomOpts(type_="inside")
                         ],
                         tooltip_opts=opts.TooltipOpts(
                             trigger='axis', axis_pointer_type='shadow'))
    line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

    if markline is not None:
        line.set_series_opts(markline_opts=opts.MarkLineOpts(
            data=[opts.MarkLineItem(y=markline, name='预算')]))

    return line
Пример #6
0
    def gen_cci(self, df1, n):
        high_list = df1.apply(lambda record: float(record['high']),
                              axis=1).tolist()
        high_list = np.array(high_list)

        low_list = df1.apply(lambda record: float(record['low']),
                             axis=1).tolist()
        low_list = np.array(low_list)

        close_list = df1.apply(lambda record: float(record['close']),
                               axis=1).tolist()
        close_list = np.array(close_list)

        rsi_n = talib.CCI(high_list, low_list, close_list, n)

        line = Line()
        line.add_xaxis(xaxis_data=list(df1['datetime']))
        line.add_yaxis(
            'cci_' + str(n),
            y_axis=rsi_n,
            xaxis_index=1,
            yaxis_index=1,
            label_opts=opts.LabelOpts(is_show=False),
        )

        line.set_global_opts(
            yaxis_opts=opts.AxisOpts(min_=-150, max_=150),
            # xaxis_opts=opts.AxisOpts(is_show=False),
            xaxis_opts=opts.AxisOpts(
                axislabel_opts=opts.LabelOpts(is_show=False), ),
            legend_opts=opts.LegendOpts(is_show=True, pos_right="38%"),
        )
        line.set_series_opts(label_opts=opts.LabelOpts(is_show=False), )

        return line
Пример #7
0
def report(request):
    """返回慢SQL历史趋势"""
    checksum = request.GET.get('checksum')
    cnt_data = ChartDao().slow_query_review_history_by_cnt(checksum)
    pct_data = ChartDao().slow_query_review_history_by_pct_95_time(checksum)
    cnt_x_data = [row[1] for row in cnt_data['rows']]
    cnt_y_data = [int(row[0]) for row in cnt_data['rows']]
    pct_y_data = [str(row[0]) for row in pct_data['rows']]
    line = Line(init_opts=opts.InitOpts(width='800', height='380px'))
    line.add_xaxis(cnt_x_data)
    line.add_yaxis("慢查次数",
                   cnt_y_data,
                   is_smooth=True,
                   markline_opts=opts.MarkLineOpts(data=[
                       opts.MarkLineItem(type_="max", name='最大值'),
                       opts.MarkLineItem(type_="average", name='平均值')
                   ]))
    line.add_yaxis("慢查时长(95%)",
                   pct_y_data,
                   is_smooth=True,
                   is_symbol_show=False)
    line.set_series_opts(areastyle_opts=opts.AreaStyleOpts(opacity=0.5, ))
    line.set_global_opts(
        title_opts=opts.TitleOpts(title='SQL历史趋势'),
        legend_opts=opts.LegendOpts(selected_mode='single'),
        xaxis_opts=opts.AxisOpts(
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
            is_scale=False,
            boundary_gap=False,
        ),
    )

    result = {"status": 0, "msg": '', "data": line.render_embed()}
    return HttpResponse(json.dumps(result), content_type='application/json')
Пример #8
0
def gen_rsi(df1):
    close_list = df1.apply(lambda record: float(record['close']),
                           axis=1).tolist()
    close_list = np.array(close_list)

    rsi_5 = talib.RSI(close_list, 5)
    rsi_20 = talib.RSI(close_list, 20)

    line = Line()
    line.add_xaxis(xaxis_data=list(df1['datetime']))
    line.add_yaxis(
        'rsi_5',
        y_axis=rsi_5,
        xaxis_index=1,
        yaxis_index=1,
        label_opts=opts.LabelOpts(is_show=False),
    )
    line.add_yaxis(
        'rsi_20',
        y_axis=rsi_20,
        xaxis_index=1,
        yaxis_index=1,
        label_opts=opts.LabelOpts(is_show=False),
    )
    line.set_global_opts(
        # xaxis_opts=opts.AxisOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(is_show=False), ),
        legend_opts=opts.LegendOpts(is_show=True, pos_right="50%"),
    )
    line.set_series_opts(label_opts=opts.LabelOpts(is_show=False), )

    return line
Пример #9
0
 def line_html(self, title, key, val, color=None):
     # 实例化
     line = Line(self.init_opts)
     # X轴
     line.add_xaxis(key)
     # Y轴
     line.add_yaxis(
         "",
         val,
         markline_opts=self.markline_opts,  # 标记线选项
         markpoint_opts=self.markpoint_opts  # 标记点选项
     )
     # 系列配置
     line.set_series_opts(
         linestyle_opts=options.LineStyleOpts(
             opacity=0.2,  # 透明度
         ),  # 线条样式
         areastyle_opts=options.AreaStyleOpts(
             opacity=0.4,  # 透明度
             color=color  # 颜色
         )  # 面积样式
     )
     # 全局配置
     line.set_global_opts(
         title_opts=self.title_opts_custom(title),  # 标题选项
         datazoom_opts=[options.DataZoomOpts()],  # 缩放选项
         yaxis_opts=options.AxisOpts(min_=0, max_=100),  # Y轴范围
     )
     # 返回图表html代码
     return line.render_embed()
def stat_area_trend():
    df = load_data()
    df['发证月份'] = [i[:7] for i in df['发证日期']]
    summary = df.groupby('发证月份').sum()
    columns_area = ['预售建筑面积', '总建筑面积', '住宅面积', '办公面积', '其他面积', '车库面积']
    columns_other = ['层数', '住宅套数']
    chart = Line()
    chart.add_xaxis(summary.index.tolist())
    for column in columns_area:
        chart.add_yaxis(column,
                        summary[column].tolist(),
                        areastyle_opts=opts.AreaStyleOpts(opacity=0.1),
                        is_smooth=True)

    chart.set_series_opts(label_opts=opts.LabelOpts(
        is_show=False), ).extend_axis(yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(is_show=False), is_show=False))

    bar = Bar()
    bar.add_xaxis(summary.index.tolist())
    for column in columns_other:
        bar.add_yaxis(column, summary[column].tolist(), yaxis_index=1)

    chart.overlap(bar)
    min_date = min(df['发证日期'])
    max_date = max(df['发证日期'])
    chart.set_global_opts(title_opts=opts.TitleOpts(
        title="长沙预售房屋面积变化趋势",
        subtitle="统计日期:{}至{},数据来源:{}".format(min_date, max_date, DATA_SOURCE)),
                          legend_opts=opts.LegendOpts(is_show=True),
                          toolbox_opts=opts.ToolboxOpts(is_show=True))

    filename = os.path.join('..', 'assets',
                            '01_changsha_zhufangyushou_面积趋势.html')
    chart.render(filename)
Пример #11
0
def gen_line(df1, symbol, price_min, price_max):
    #df1['datetime'] = df1['date'] + ' ' + df1['time']
    df1['datetime'] = df1['date']
    dt_list = list(df1['datetime'])
    close_list = df1.apply(lambda record: float(record['close']),
                           axis=1).tolist()
    close_list = np.array(close_list)

    line1 = Line(init_opts=opts.InitOpts(height='700px', width='1300px'))
    line1.set_global_opts(
        yaxis_opts=opts.AxisOpts(
            min_=price_min,
            #min_=999,
            max_=price_max,
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        ),
        datazoom_opts=[
            opts.DataZoomOpts(
                is_show=True,
                type_="slider",
                range_start=0,
                range_end=100,
            ),
        ],
    )
    line1.add_xaxis(xaxis_data=dt_list)
    line1.add_yaxis(
        symbol,
        y_axis=close_list,
    )
    line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

    return line1
Пример #12
0
def line_power():
    obj_l = Line()
    obj_l.add_xaxis(xaxis_data=["0","1", "2", "3", "4", "5", "6", "7", "8"])
    obj_l.add_yaxis("2的指数图像", y_axis=[1, 2, 4, 8, 16, 32, 64, 128, 256],linestyle_opts=opts.LineStyleOpts(width=2), is_smooth=True)
    obj_l.set_series_opts(
        # 设置该参数,则x对应的y值会显示出来,该参数默认为True
        label_opts=opts.LabelOpts(is_show=True),
    )
    obj_l.set_global_opts(
            title_opts=opts.TitleOpts(title="Line-2的指数图像",subtitle="副标题"),
            xaxis_opts=opts.AxisOpts(
                name="x轴",

                # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格
                boundary_gap=False
                # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。
                # axistick_opts=opts.AxisTickOpts(is_align_with_label=True)
            ),
            yaxis_opts=opts.AxisOpts(
                # y轴名字
                name="y轴",

                # 根据y轴刻度的横线
                splitline_opts=opts.SplitLineOpts(is_show=True),

                # 只在数值轴中(type: 'value')有效
                # is_scale = False
            )
        )
    return obj_l
Пример #13
0
def gen_rsi(df1):

    close_list = df1.apply(lambda record: float(record['close']), axis=1).tolist()
    close_list = np.array(close_list)

    rsi_5 = talib.RSI(close_list, 5)
    rsi_20 = talib.RSI(close_list, 20)

    line = Line()
    line.add_xaxis( xaxis_data=list(df1['datetime']) )
    line.add_yaxis( 'rsi_5',
                    y_axis=rsi_5,
                    xaxis_index=1,
                    yaxis_index=1,
                    label_opts=opts.LabelOpts(is_show=False),
                  )
    line.add_yaxis( 'rsi_20',
                    y_axis=rsi_20,
                    xaxis_index=1,
                    yaxis_index=1,
                    label_opts=opts.LabelOpts(is_show=False),
                  )
    line.set_global_opts(
                        # xaxis_opts=opts.AxisOpts(is_show=False),
                        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(is_show=False),),
                        )
    line.set_series_opts(
                        label_opts=opts.LabelOpts(is_show=False),
                        markline_opts=opts.MarkLineOpts(
                            #data=[opts.MarkLineItem(y=66),opts.MarkLineItem(y=33),],
                            data=[opts.MarkLineItem(y=50)],
                            )
                        )

    return line
Пример #14
0
def Line_charts() -> Line:
    c = Line()
    c.add_xaxis(xaxis_data=x)
    c.add_yaxis(series_name='', y_axis=y1)
    c.add_yaxis(series_name='', y_axis=y2)
    # c.is_inverse()
    c.set_series_opts(label_opts=opts.LabelOpts(position="right"))
    c.set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片"))
    return c
Пример #15
0
def line_chart():
    # 折线图

    line = Line()
    x_y_axis = get_chart_data()
    line.add_xaxis(x_y_axis[0])
    for j in x_y_axis[1]:
        for key, value in j.items():
            line.add_yaxis(key,
                           value,
                           areastyle_opts=opts.AreaStyleOpts(opacity=1),
                           label_opts=opts.LabelOpts(is_show=False))
    line.set_series_opts(
        # linestyle_opts=opts.LineStyleOpts(
        #     width=5,
        #     opacity=1,
        #     type_='solid',
        # )
        markpoint_opts=opts.MarkPointOpts(data=[
            opts.MarkPointItem(type_="max", name="最大值"),
            opts.MarkPointItem(type_="min", name="最小值"),
        ]), )
    line.set_global_opts(
        title_opts=opts.TitleOpts(
            title="API耗时统计",
            subtitle="生产环境",
            pos_left="30%",
            title_textstyle_opts=opts.TextStyleOpts(color='red'),
            subtitle_textstyle_opts=opts.TextStyleOpts(color='blue')),
        xaxis_opts=opts.AxisOpts(
            name="运行时间",
            type_="category",
            boundary_gap=False,
            # axislabel_opts=opts.LabelOpts(rotate=15)
        ),
        yaxis_opts=opts.AxisOpts(name="实际的响应时间(单位:秒)",
                                 # min_=0,
                                 # max_=20
                                 ),
        legend_opts=opts.LegendOpts(type_='scroll',
                                    selected_mode='multiple',
                                    pos_left='right',
                                    pos_top='10%',
                                    orient='vertical'),
        tooltip_opts=opts.TooltipOpts(trigger="axis",
                                      axis_pointer_type="line"),
        toolbox_opts=opts.ToolboxOpts(is_show=True, pos_left='right'),
        visualmap_opts=opts.VisualMapOpts(is_show=True,
                                          type_="size",
                                          min_=0,
                                          max_=20,
                                          range_text=["最大值", "最小值"]),
        datazoom_opts=[opts.DataZoomOpts(range_start=50, range_end=100)],
    )
    line = line.dump_options_with_quotes()
    return line
Пример #16
0
def gen_line(df1, s1, price_min, price_max):
    df1['datetime'] = df1['date'] + ' ' + df1['time']
    # df1['datetime'] = df1['date']
    dt_list1 = list(df1['datetime'])
    # print( len(dt_list1) )
    # dt_list1 = [s[5:10] for s in dt_list1]
    close_list1 = df1.apply(lambda record: float(record['close']),
                            axis=1).tolist()
    close_list1 = np.array(close_list1)
    # print(close_list1)

    #line1 = Line(init_opts=opts.InitOpts(width='1500px', height='600px'))
    line1 = Line()
    line1.set_global_opts(
        yaxis_opts=opts.AxisOpts(
            min_=price_min,
            max_=price_max,
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        ),
        datazoom_opts=[
            opts.DataZoomOpts(
                is_show=True,
                type_="slider",
                xaxis_index=[0, 1],
                range_start=0,
                range_end=100,
            ),
            opts.DataZoomOpts(
                is_show=False,
                type_="inside",
                xaxis_index=[0, 1],
                range_start=0,
                range_end=100,
            ),
        ],
        #legend_opts=opts.LegendOpts(is_show=False),
        #tooltip_opts=opts.TooltipOpts( trigger="axis",axis_pointer_type="cross" ),
        tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross"),
        axispointer_opts=opts.AxisPointerOpts(
            is_show=True,
            link=[{
                "xAxisIndex": "all"
            }],
        ),
    )
    line1.add_xaxis(xaxis_data=dt_list1)
    line1.add_yaxis(
        s1,
        y_axis=close_list1,
    )
    line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

    return line1
Пример #17
0
def charthtml(FileName):
    data = pd.read_csv(FileName)
    # 发布时间类别
    category = list(set(data["发布时间"].values.tolist()))
    line = Line()
    # line.add_xaxis(data['当地时间'].tolist())
    for i in category:
        line.add_xaxis(data[data["发布时间"] == i]['当地时间'].to_list())
        line.add_yaxis(i, data[data["发布时间"] == i]['播放数'].to_list())

    line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

    line.render('ACI单个作品实时数据.csv.html')
Пример #18
0
def line_areastyle_boundary_gap():
    obj_l = Line()
    obj_l.add_xaxis(Faker.choose())
    obj_l.add_yaxis("商家A", Faker.values(), is_smooth=True)
    obj_l.add_yaxis("商家B", Faker.values(), is_smooth=True)
    obj_l.set_series_opts(
            areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
            label_opts=opts.LabelOpts(is_show=False),
        )
    obj_l.set_global_opts(
            title_opts=opts.TitleOpts(title="Line-面积图(紧贴 Y 轴)",subtitle="副标题"),
            xaxis_opts=opts.AxisOpts(boundary_gap=False)
        )
    return obj_l
Пример #19
0
def echarts_lin(x_data_list, y_name, y_data_list):
    # 渲染图大小
    line = Line(init_opts=opts.InitOpts(width='1000px'))

    # X轴数据
    line.add_xaxis(x_data_list)

    # Y轴名称和
    for i_name, i_reslut in zip(y_name, y_data_list):
        if i_name not in ('学资源', '讨论', '单题', '微课程', '一般任务', '直播课', '个性化',
                          '先声'):
            line.add_yaxis('{}'.format(i_name), i_reslut, is_selected=True)
        else:
            line.add_yaxis('{}'.format(i_name), i_reslut, is_selected=False)

    # 全局配置
    line.set_global_opts(
        # 主标题
        title_opts=opts.TitleOpts(title=""),
        # 缩放功能
        datazoom_opts=opts.DataZoomOpts(is_show=True,
                                        type_='slider',
                                        range_start=90,
                                        range_end=100),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        xaxis_opts=opts.AxisOpts(axislabel_opts={
            "interval": "0",
            "rotate": 45
        }, ),
    )

    # 系统配置
    line.set_series_opts(
        # 图中显示数值
        label_opts=opts.LabelOpts(is_show=True),

        # 线装图,平均线
        markline_opts=opts.MarkLineOpts(data=[
            opts.MarkLineItem(type_="average", name="平均值"),
        ]),
        # 点装图,最大值最小值
        markpoint_opts=opts.MarkPointOpts(data=[
            opts.MarkPointItem(type_="min", name="最小值"),
            opts.MarkPointItem(type_="max", name="最大值"),
        ]),
    )

    return line
Пример #20
0
def tail_northup():
    """
    北上资金跟踪
    :return:
    """
    df = db.read("tail_northup")
    result_df = df.set_index(['day', 'name']).unstack('name')['share_ratio']
    rs_df = ((result_df - result_df.shift()).fillna(0) * 100).applymap(lambda x: round(x))
    selected = sorted(list(rs_df.iloc[-1].items()), key=lambda x: x[1], reverse=True)[0][0]

    c = Line()
    c = c.add_xaxis(rs_df.index.tolist())

    for key in rs_df:
        is_selected = key == selected
        c = c.add_yaxis(key, rs_df[key].values.tolist(), is_smooth=True, is_selected=is_selected)

    c = c.set_series_opts(
        areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
        label_opts=opts.LabelOpts(is_show=False),
    )
    c = c.set_global_opts(
        title_opts=opts.TitleOpts(title="主力跟踪-北上资金", subtitle=datetime.now().strftime("%Y%m%d")),
        xaxis_opts=opts.AxisOpts(
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
            is_scale=False,
            boundary_gap=False,
        ),
        legend_opts=opts.LegendOpts(pos_left=100, pos_top=50)
    )
    return c
Пример #21
0
def Line_ele(name, model_names, datas, y_name, y_max):
    x = [n for n in range(len(datas[0]))]
    line = Line(init_opts=opts.InitOpts(bg_color='rgba(255,250,205,0.2)',
                                        width='1500px',
                                        height='600px',
                                        page_title=name))
    line.add_xaxis(xaxis_data=x)

    average = []
    for i in range(len(datas)):
        sum = 0
        num = 0
        y = [n[0] for n in datas[i]]
        line.add_yaxis(series_name=model_names[i],
                       y_axis=y,
                       symbol="arrow",
                       is_symbol_show=False)
        for j in datas[i]:
            sum += j[0]
            num = num + 1 if j[0] > 0 else num
        average.append(sum / num)
        print(sum, num, average[i])
    line.set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markpoint_opts=opts.MarkPointOpts(data=[
            opts.MarkPointItem(type_="min", name="最小值"),
            opts.MarkPointItem(type_="max", name="最大值"),
        ]),
        markline_opts=opts.MarkLineOpts(data=[
            opts.MarkLineItem(name="multi", y=average[0]),
            opts.MarkLineItem(name="multis", y=average[1]),
            opts.MarkLineItem(name="plans", y=average[2])
        ]),
    )
    line.set_global_opts(
        title_opts=opts.TitleOpts(title=name),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=30),
                                 name='TEST_PICS'),
        yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=30),
                                 name=y_name,
                                 min_=0,
                                 max_=y_max),
        legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(
            font_size=30)))

    util.mkdir('./analysis')
    line.render('./analysis/' + name + '.html')
Пример #22
0
def gen_line(df1):
    #df1['datetime'] = df1['date'] + ' ' + df1['time']
    df1['datetime'] = df1['date']
    dt_list1 = list(df1['datetime'])
    # print( len(dt_list1) )
    # dt_list1 = [s[5:10] for s in dt_list1]
    close_list1 = df1.apply(lambda record: float(record['close1']),
                            axis=1).tolist()
    close_list1 = np.array(close_list1)
    # print(close_list1)
    close_list2 = df1.apply(lambda record: float(record['close2']),
                            axis=1).tolist()
    close_list2 = np.array(close_list2)

    price_min = 9000
    line1 = Line(init_opts=opts.InitOpts(width='1500px', height='600px'))
    line1.set_global_opts(
        yaxis_opts=opts.AxisOpts(
            min_=price_min,
            #max_=price_max,
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        ),
        datazoom_opts=[
            opts.DataZoomOpts(
                is_show=True,
                type_="slider",
                range_start=0,
                range_end=100,
            ),
        ],
    )

    line1.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(
        formatter="{value} °C")))

    line1.add_xaxis(xaxis_data=dt_list1)
    line1.add_yaxis(
        'left',
        y_axis=close_list1,
    )
    line1.add_yaxis('right', y_axis=close_list2, yaxis_index=1)

    line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

    return line1
Пример #23
0
def gen_resid(dt_list, close_list):
    line = Line()
    line.add_xaxis(xaxis_data=dt_list)
    line.add_yaxis(
        'resid',
        y_axis=close_list,
        xaxis_index=1,
        yaxis_index=1,
        label_opts=opts.LabelOpts(is_show=False),
    )

    line.set_global_opts(  #yaxis_opts=opts.AxisOpts(min_=-150,max_=150),
        # xaxis_opts=opts.AxisOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(is_show=False), ), )
    line.set_series_opts(label_opts=opts.LabelOpts(is_show=False), )

    return line
Пример #24
0
    def _draw_sim(data: VideoCutResult) -> Line:
        x_axis = [str(i.start) for i in data.range_list]
        ssim_axis = [i.ssim for i in data.range_list]
        mse_axis = [i.mse for i in data.range_list]
        psnr_axis = [i.psnr for i in data.range_list]

        line = Line(init_opts=opts.InitOpts(bg_color=BACKGROUND_COLOR))
        line.add_xaxis(x_axis)
        line.add_yaxis('ssim', ssim_axis)
        line.add_yaxis('mse', mse_axis)
        line.add_yaxis('psnr', psnr_axis)
        line.set_global_opts(
            title_opts=opts.TitleOpts(title='SIM'),
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', axis_pointer_type='cross'),
        )
        line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        return line
Пример #25
0
def build_line_chart(title="Line-Chart",
                     xaxis=list(
                         map(lambda x: datetime.now() + timedelta(x),
                             range(0, 7))),
                     yaxis=[("商家A", [114, 55, 27, 101, 125, 27, 105]),
                            ("商家B", [57, 134, 137, 129, 145, 60, 49])],
                     position="right"):
    l = Line()
    l.add_xaxis(xaxis)
    for y in yaxis:
        l.add_yaxis(
            *y,
            markpoint_opts=opts.MarkPointOpts(
                data=[opts.MarkPointItem(type_="max")]),
        )
    l.set_series_opts(label_opts=opts.LabelOpts(position=position))
    l.set_global_opts(title_opts=opts.TitleOpts(title=title))

    return l
Пример #26
0
    def _draw_sim(data: VideoCutResult) -> Line:
        x_axis = [str(i.start) for i in data.range_list]
        ssim_axis = [i.ssim for i in data.range_list]
        mse_axis = [i.mse for i in data.range_list]
        psnr_axis = [i.psnr for i in data.range_list]

        line = Line(init_opts=opts.InitOpts(bg_color=constants.BACKGROUND_COLOR))
        line.add_xaxis(x_axis)
        line.add_yaxis("ssim", ssim_axis)
        line.add_yaxis("mse", mse_axis)
        line.add_yaxis("psnr", psnr_axis)
        line.set_global_opts(
            title_opts=opts.TitleOpts(title="SIM"),
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            tooltip_opts=opts.TooltipOpts(
                is_show=True, trigger="axis", axis_pointer_type="cross"
            ),
        )
        line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        return line
Пример #27
0
def zhe_xian():
    line = Line(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
    line.add_xaxis(data["月份"].to_list())
    line.add_yaxis("盈利",
                   data["母婴"].to_list(),
                   is_smooth=True,
                   areastyle_opts=opts.AreaStyleOpts(opacity=0.2,
                                                     color='#9bf6ff'))
    line.set_global_opts(title_opts=opts.TitleOpts(title="母婴:月盈利"))
    line.set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),  #不显示数字
        markpoint_opts=opts.MarkPointOpts(data=[
            opts.MarkPointItem(type_="max", name="最大值"),
            opts.MarkPointItem(type_="min", name="最小值"),
        ]),
        markline_opts=opts.MarkLineOpts(data=[
            opts.MarkLineItem(type_="average", name="平均值"),
        ]),
    )
    line.render('../graph/5.4(母婴月盈利).html')
Пример #28
0
def show_showtime():
    data=select_data()
    # 折线图初始化
    line = Line(init_opts=opts.InitOpts(page_title="豆瓣电影-中外电影上映年份分布图"))
    # 横坐标
    line.add_xaxis(data[0])
    # 纵坐标
    line.add_yaxis("全球", data[1], color="#2f4554")
    line.add_yaxis("中国", data[2], color="#749f83")
    line.add_yaxis("美国", data[3], color="#c23531")
    line.set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        # 标记最大值
        markpoint_opts=opts.MarkPointOpts(
            data=[
                opts.MarkPointItem(type_="max", name="最大值"),
            ]
        )
    )
    # 全局配置
    line.set_global_opts(
        # 标题
        title_opts=opts.TitleOpts(
            title="豆瓣电影-中外电影上映年份分布图", pos_left='center'),
        # 标签
        legend_opts=opts.LegendOpts(
            pos_left="620px", pos_top="28px"),
        # 水平滚动条
        datazoom_opts=opts.DataZoomOpts(),
        # 纵坐标设置
        yaxis_opts=opts.AxisOpts(
            # 显示坐标轴刻度
            axistick_opts=opts.AxisTickOpts(is_show=True),
            # 显示分割线
            splitline_opts=opts.SplitLineOpts(is_show=True)
        )
    )
    # 生成HTML
    html="pages/iframes/showtime.html"
    line.render("./templates/"+html)
    return html
Пример #29
0
def show_score():
    data=select_data()
    line = Line(init_opts=opts.InitOpts(page_title='豆瓣电影TOP250-中外电影评分分布'))
    line.add_xaxis(data[0])
    line.add_yaxis("全球", data[1], is_smooth=True, color="#749f83")
    line.add_yaxis("美国", data[2], is_smooth=True, color="#c23531")
    line.add_yaxis("中国", data[3], is_smooth=True, color="#61a0a8")
    line.set_series_opts(
        areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
        label_opts=opts.LabelOpts(is_show=False),
        # 标记最大值
        markpoint_opts=opts.MarkPointOpts(
            data=[
                opts.MarkPointItem(type_="max", name="最大值"),
            ]
        )
    )
    line.set_global_opts(
        title_opts=opts.TitleOpts(title="豆瓣电影TOP250-中外电影评分分布", pos_left='center'),
        # 水平滚动条
        datazoom_opts=opts.DataZoomOpts(),
        xaxis_opts=opts.AxisOpts(
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
            is_scale=False,
            boundary_gap=False,
        ),
        legend_opts=opts.LegendOpts(
            pos_left="620px", pos_top="28px"),
        yaxis_opts=opts.AxisOpts(
            # 显示坐标轴刻度
            axistick_opts=opts.AxisTickOpts(is_show=True),
            # 显示分割线
            splitline_opts=opts.SplitLineOpts(is_show=True)
        )
    )
    # 生成HTML
    html="pages/iframes/score.html"
    line.render("./templates/"+html)
    return html
Пример #30
0
def gen_line(df1, s1, price_min, price_max):
    df1['datetime'] = df1['date'] + ' ' + df1['time']
    # df1['datetime'] = df1['date']
    dt_list1 = list(df1['datetime'])
    # print( len(dt_list1) )
    # dt_list1 = [s[5:10] for s in dt_list1]
    close_list1 = df1.apply(lambda record: float(record['close']),
                            axis=1).tolist()
    close_list1 = np.array(close_list1)
    # print(close_list1)

    line1 = Line(init_opts=opts.InitOpts(width='1500px', height='600px'))
    line1.set_global_opts(
        yaxis_opts=opts.AxisOpts(
            min_=price_min,
            max_=price_max,
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        ),
        datazoom_opts=[
            opts.DataZoomOpts(
                is_show=True,
                type_="slider",
                range_start=0,
                range_end=100,
            ),
        ],
    )
    line1.add_xaxis(xaxis_data=dt_list1)
    line1.add_yaxis(
        s1,
        y_axis=close_list1,
        #is_connect_nones=True,
    )
    line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

    return line1