Ejemplo n.º 1
0
def echart04(request):
    template = loader.get_template('ewpyecharts.html')

    cursor = connection.cursor()
    query_sql = "select typen, count(*) f1, sum(order_m) as f2, sum(status) f3, max(order_m) f4, avg(order_m) f5 from myechart_ewsales group by typen"

    cursor.execute(query_sql)
    data = cursor.fetchall()
    # query_sql = "select name, f1, f2 from swap_radas  order by f2 desc limit 0,5"
    # data = exc_sql(query_sql)

    data = list(data)
    data = [list(i) for i in data]

    # df = DataFrame(data, columns=["name", "f1", "f2"])
    df = DataFrame(data, columns=["typen", "f1", "f2", "f3", "f4", "f5"])
    df[["f1", "f2", "f3", "f4", "f5"]] = df[["f1", "f2", "f3", "f4",
                                             "f5"]].astype(float)

    df = df.sort_values(by='f1', ascending=False)
    # f1 数量, f2 金额, f2  成功率, f4  最大金额, F5   平均金额

    df1 = df['typen']
    df2 = df[['f1', 'f2', 'f3', 'f4', 'f5']]

    # 用于调整雷达各维度的范围大小
    c_schema = [{
        "name": "数量",
        "max": df['f1'].max(),
        "min": -1
    }, {
        "name": "金额",
        "max": df['f2'].max(),
        "min": -1
    }, {
        "name": "成功率",
        "max": df['f3'].max(),
        "min": -1
    }, {
        "name": "最大金额",
        "max": df['f4'].max(),
        "min": -1
    }, {
        "name": "平均金额",
        "max": df['f5'].max(),
        "min": -1
    }]
    #
    # 画图

    d1 = [[0.79, 0.90, 0.46, 0.57, -0.50]]
    # d3 = df2[:1].values.tolist()

    radar = Radar()
    radar.config(c_schema=c_schema)
    # radar.add(df1[1], df2[:1].values.tolist())
    # radar.add(df1[2], df2[:2].values.tolist())
    # radar.add(df1[3], df2[:3].values.tolist())
    # radar.add(df1[4], df2[:4].values.tolist())
    # radar.add(df1[5], df2[:5].values.tolist())

    radar.add(df1[0:1].values, df2[0:1].values.tolist())
    radar.add(df1[1:2], df2[1:2].values.tolist())
    radar.add(df1[2:3], df2[2:3].values.tolist())
    radar.add(df1[3:4], df2[3:4].values.tolist())
    radar.add(df1[4:5], df2[4:5].values.tolist())

    # radar.add("数量", [d1])
    # radar.add("金额", [d2])

    # radar.add("数量", [d1])

    context = dict(myechart=radar.render_embed(),
                   host=REMOTE_HOST,
                   script_list=radar.get_js_dependencies())
    return HttpResponse(template.render(context, request))
Ejemplo n.º 2
0
def echart03(request):
    template = loader.get_template('ewpyecharts.html')

    # 2个系列的5个维度的数据
    # value1 = [[0.79, 0.90, 0.46, 0.57, -0.50]]
    # value2 = [[0.11, 0.34, 0.31, -0.11, 0.21]]

    d1 = [[0.79, 0.90, 0.46, 0.57, -0.50]]
    d2 = [[1.11, 0.34, 0.31, -0.11, 0.21]]

    # sqldata_m = []
    # query_sql = "select count(*) 数量, sum(order_m) as 金额, sum(status) 成功率, max(order_m) 最大金额, avg(order_m) 平均金额, typen from myechart_ewsales"
    # data_list = exc_sql(query_sql)
    # m=[i[0] for i in data_list]
    #
    # query_sql = "select max(f1), max(f2) from swap_radas  "
    # data_list = exc_sql(query_sql)
    # m1 = data_list[0]
    # m2 = data_list[1]

    query_sql = "select name, f1, f2 from swap_radas  order by f2 desc limit 0,5"
    data = exc_sql(query_sql)

    data = list(data)
    data = [list(i) for i in data]

    df = DataFrame(data, columns=["name", "f1", "f2"])

    n = list(df["name"])
    d1 = list(df["f1"])
    d2 = list(df["f2"])

    # dd1 = [float(i[1]) for i in data_list]
    # d1 = list(dd1)

    # d2 = [i[2] for i in data_list]

    # query_sql = "select count(*) 数量, sum(order_m) as 金额, sum(status) 成功率, max(order_m) 最大金额, avg(order_m) 平均金额, typen from myechart_ewsales where typen = '营销体系'"
    # data_list = exc_sql(query_sql)
    # d2 = [i[0] for i in data_list]
    #
    # # 用于调整雷达各维度的范围大小
    # c_schema = [{"name": "", "max": 1, "min": -1},
    #             {"name": "", "max": 1, "min": -1},
    #             {"name": "", "max": 1, "min": -1},
    #             {"name": "", "max": 1, "min": -1},
    #             {"name": "", "max": 1, "min": -1}]

    # 用于调整雷达各维度的范围大小
    c_schema = [{
        "name": n[0],
        "max": 1,
        "min": -1
    }, {
        "name": n[1],
        "max": 1,
        "min": -1
    }, {
        "name": n[2],
        "max": 1,
        "min": -1
    }, {
        "name": n[3],
        "max": 1,
        "min": -1
    }, {
        "name": n[4],
        "max": 1,
        "min": -1
    }]

    # 画图
    radar = Radar()
    radar.config(c_schema=c_schema)
    radar.add("数量", [d1])
    radar.add("金额", [d2])

    context = dict(myechart=radar.render_embed(),
                   host=REMOTE_HOST,
                   script_list=radar.get_js_dependencies())
    return HttpResponse(template.render(context, request))
Ejemplo n.º 3
0
def echart1(request):
    template = loader.get_template('ewpyecharts.html')

    sql_s = "select typen, count(*) f1, sum(order_m) as f2, sum(status) f3, max(order_m) f4, avg(order_m) f5 from myechart_ewsales group by typen"
    columns_s = ["typen", "f1", "f2", "f3", "f4", "f5"]
    # index_col_s = "f1"
    df = pd.read_sql(sql_s, connection, columns=columns_s)

    df = df.sort_values(by='f1', ascending=False)
    # f1 数量, f2 金额, f2  成功率, f4  最大金额, F5   平均金额

    # old_width = pd.get_option('display.max_colwidth')
    # pd.set_option('display.max_colwidth', -1)
    # df.to_html('files.html', escape=False, index=False, sparsify=True, border=0, index_names=False, header=False)
    # pd.set_option('display.max_colwidth', old_width

    df1 = list(df['typen'])
    df2 = df[['f1', 'f2', 'f3', 'f4', 'f5']]

    # 用于调整雷达各维度的范围大小
    c_schema = [{
        "name": "数量201910",
        "max": df['f1'].max(),
        "min": -1
    }, {
        "name": "金额2019",
        "max": df['f2'].max(),
        "min": -1
    }, {
        "name": "成功率",
        "max": df['f3'].max(),
        "min": -1
    }, {
        "name": "最大金额",
        "max": df['f4'].max(),
        "min": -1
    }, {
        "name": "平均金额",
        "max": df['f5'].max(),
        "min": -1
    }]
    #
    # 画图

    radar = Radar()
    radar.config(c_schema=c_schema)

    radar.add(df1[0],
              df2[0:1].values.tolist(),
              item_color="#f9713c",
              symbol=None,
              area_color="#ea3a2e",
              area_opacity=0.1,
              legend_top='bottom',
              line_width=3)
    radar.add(df1[1],
              df2[1:2].values.tolist(),
              item_color='#2525f5',
              symbol=None,
              area_color='#2525f5',
              area_opacity=0.1,
              legend_top='bottom',
              legend_text_size=20,
              line_width=3)
    radar.add(df1[2],
              df2[2:3].values.tolist(),
              item_color='#112535',
              line_width=3)
    radar.add(df1[3],
              df2[3:4].values.tolist(),
              item_color='#991125',
              line_width=3)
    radar.add(df1[4],
              df2[4:5].values.tolist(),
              item_color='#1125b9',
              line_width=3)
    radar.render("Rader.html")

    context = dict(myechart=radar.render_embed(),
                   host=REMOTE_HOST,
                   script_list=radar.get_js_dependencies())

    html_out = template.render(context, request)

    # attr = ["衬衫", "羊毛衫", "始祖鸟", "裤子", "高跟鞋", "袜子"]
    # v1 = [5, 20, 36, 10, 75, 90]
    # v2 = [10, 25, 8, 60, 20, 80]
    # bar1 = Bar("柱状图数据堆叠示例")
    # bar1.add("商家A", attr, v1, is_stack=True)
    # bar1.add("商家B", attr, v2, is_stack=True)
    #
    # context = dict(
    #     bar=bar1.render_embed(),
    #     host=REMOTE_HOST,
    #     script_list=bar.get_js_dependencies()
    # )

    # return HttpResponse(template.render(context, request))
    return HttpResponse(html_out)