コード例 #1
0
def job_page(job):
    # 需要处理的数据
    city_num_list = DATA.get_the_kw_msg(lan_name=job)

    # 生成图表
    ## 饼图
    city_geo_page = Page().add(
        pie_yht(attr_v1=city_num_list[:20],
                chart_name=job + '前二十个城市各自占的比重',
                v1_name='城市'))

    ## 生成柱状图
    city_bar_page = Page().add(
        bar_sssf(attr_v1=city_num_list[:100],
                 chart_name=job + '每个城市中该职位数量',
                 v1_name='城市'))
    return render_template(
        'lan.html',
        title=job,
        top5_city=DATA.top5_city_name(),
        top5_lan=DATA.top5_lan_name(),
        top5_job=DATA.top5_job_name(),
        city_geo_page=city_geo_page.render_embed(),
        city_bar_page=city_bar_page.render_embed(),
        script_list=city_geo_page.get_js_dependencies() +
        city_bar_page.get_js_dependencies(),
    )
コード例 #2
0
def search():
    page = Page()
    bar = get_bar()
    page.add(bar)
    keyword = request.args.get('keyword').replace(' ', '')  # 获得前端传回的keyword
    print(keyword)
    if ':' in keyword:  # 判断是否是高级搜索
        key = keyword.split(':')[0]  # 获取传回的高级搜索关键字,如"诗人:李白",此时获取‘诗人’
        value = keyword.split(':')[1]  # 获取‘李白’
        if key == '诗人' and value:  # 判断高级搜索为‘诗人’,并且搜索内容不为空
            poet = Poet.query.filter_by(
                name=value).first()  # 在数据库中查询姓名为”李白“的诗人数据
            if poet:  # 如果查询到
                context = {
                    'poet': poet,  # 诗人字段信息
                    'poem': poet.poems  # 诗人的是诗的字段信息
                }
                return render_template('search.html',
                                       **context,
                                       chart=page.render_embed())
            else:  # 如果没有查询到
                context = {
                    'message': '没有找到相关内容'  # 返回信息
                }
                return render_template('search.html', **context)  # 渲染页面
        elif key == '诗句' and value:  # 判断高级搜索为‘诗句’,并且搜索内容不为空 如”诗句:清明“
            poem = Poem.query.filter(
                Poem.content.contains(value)).all()  # 获取全部诗句内容中包含”清明“诗句
            if poem:  # 如果查询到
                context = {
                    'poem': poem  # 诗的字段信息
                }
                return render_template(
                    'search.html',
                    **context,
                    chart=page.render_embed(),
                    host='/static/js',
                    script_list=page.get_js_dependencies())  # 渲染页面
            else:  # 如果没有查询到
                context = {'message': '没有找到相关内容'}
                return render_template('search.html', **context)  # 渲染页面
    else:  # 普通搜索,直接搜索诗的名字 如:‘江南’
        poem = Poem.query.filter_by(title=keyword).all()  # 获取所有诗的名字为‘江南’的数据
        if poem:  # 如果查询的到
            context = {
                'poem': poem  # 所有诗的名字为‘江南’字段信息
            }
            return render_template(
                'search.html',
                **context,
                chart=page.render_embed(),
                host='/static/js',
                script_list=page.get_js_dependencies())  # 渲染页面
        else:  # 如果没有查询的到
            context = {'message': '没有找到相关内容'}
            return render_template('search.html', **context)  #渲染页面
コード例 #3
0
def create_charts(data):
    # data字典格式(三个表的情况下):
    # {'charcloud':[str:表一的前描述,str:表一的后描述,数据1,数据2,...,数据n],'...':[...]}
    html = ''
    page = Page()
    style = Style(width=900, height=600)
    # 本页面包含:1:所有字的词云charcloud(两个数据chars,values)、
    # 表一:
    # 获取表一的数据
    html_before = data['charcloud'][0]
    html_after = data['charcloud'][1]
    chars = data['charcloud'][2]
    values = data['charcloud'][3]
    wordcloud = WordCloud("唐诗用字云图", **style.init_style)
    wordcloud.add("字云",
                  chars,
                  values,
                  word_size_range=[10, 100],
                  shape='pentagon')
    java_script = wordcloud.render_embed()
    html += html_before + java_script + html_after
    page.add(wordcloud)
    # 表二:
    html_before = data['chartop10'][0]
    html_after = data['chartop10'][1]
    chars = data['chartop10'][2]
    values = data['chartop10'][3]
    bar = Bar("唐诗高频十字", **style.init_style)
    bar.add("柱状图", chars, values)
    java_script = bar.render_embed()
    html += html_before + java_script + html_after
    page.add(bar)
    # 表三:
    html_before = data['frequency&times'][0]
    html_after = data['frequency&times'][1]
    keys = data['frequency&times'][2]
    values = data['frequency&times'][3]
    line = Line("唐诗字频-字数", **style.init_style)
    line.add("字频--字数",
             keys,
             values,
             is_smooth=True,
             is_fill=True,
             area_opacity=0.2,
             is_datazoom_show=True,
             datazoom_type="both",
             datazoom_range=[0, 60],
             xaxis_interval=1,
             yaxis_formatter="字",
             xaxis_name="频次",
             yaxis_name="字数",
             xaxis_name_pos="end",
             yaxis_name_pos="end",
             is_more_utils=True)
    java_script = line.render_embed()
    html += html_before + java_script + html_after
    page.add(line)
    # 最后
    script = page.get_js_dependencies()
    return html, script
コード例 #4
0
def city_page(city):
    # 需要处理的数据
    lan_list, job_list = DATA.get_kw_msg_of_city(city_name=city)
    kw_list = DATA.get_the_city_msg(city_name=city)
    kw_num = DATA.get_kw_num(city=city)
    lan_num, job_num = DATA.get_lan_job_num(city=city)

    # 生成数据图表
    kw_bar_page = Page().add(
        bar_sssf(attr_v1=kw_list, chart_name=city + '各种职位总览-柱状图',
                 v1_name='数量'))

    ## 对语言的分析柱状图与饼图
    lan_bar_page = Page().add(
        bar_sssf(attr_v1=lan_list, chart_name=city + '各语言数量-柱状图',
                 v1_name='语言'))
    lan_pie_page = Page().add(
        pie_yht(attr_v1=lan_list, chart_name='每种语言占总数占比-饼状图', v1_name='语言'))

    ## 对职位的分析柱状图与饼图
    job_bar_page = Page().add(
        bar_sssf(attr_v1=job_list, chart_name=city + '各职位数量-柱状图',
                 v1_name='职位'))
    job_pie_page = Page().add(
        pie_yht(attr_v1=job_list, chart_name='每种职位占总数占比-饼状图', v1_name='职位'))

    return render_template(
        'city.html',
        title=city,
        kw_list=kw_list,
        lan_num=lan_num,
        job_num=job_num,
        top5_city=DATA.top5_city_name(),
        top5_lan=DATA.top5_lan_name(),
        top5_job=DATA.top5_job_name(),
        kw_bar_page=kw_bar_page.render_embed(),
        lan_bar_page=lan_bar_page.render_embed(),
        lan_pie_page=lan_pie_page.render_embed(),
        job_bar_page=job_bar_page.render_embed(),
        job_pie_page=job_pie_page.render_embed(),
        script_list=kw_bar_page.get_js_dependencies() +
        lan_bar_page.get_js_dependencies() +
        lan_pie_page.get_js_dependencies() +
        job_bar_page.get_js_dependencies() +
        job_pie_page.get_js_dependencies(),
    )
コード例 #5
0
ファイル: app.py プロジェクト: ch812248495/website_project
def recommendation():
    page3 = Page()
    sca = scatter()
    page3.add(sca)
    return render_template('recommendation.html',
                           myechart=page3.render_embed(),
                           host=DEFAULT_HOST,
                           script_list=page3.get_js_dependencies())
コード例 #6
0
ファイル: views.py プロジェクト: Joynice/host-server
def index():
    asset_count = Asset.query.count()  # 总资产数
    page = Page()  # 生成页面对象
    # 生成服务器图
    webserver_pie = webserver(asset_count)  # web服务器
    os_pie = webos()  # 操作系统
    pl_pie = pl()  # 开发语言
    jsf_pie = jsf()  # js框架
    cms_pie = cms() #cms
    page.add([webserver_pie, os_pie, pl_pie, jsf_pie, cms_pie])
    return render_template('cms/cms_index.html', chart=page.render_embed(), host='/static/front/js', total=asset_count,
                           script_list=page.get_js_dependencies())
コード例 #7
0
ファイル: app.py プロジェクト: ch812248495/website_project
def virtualization():
    page2 = Page()
    data_clound = data_cloud()
    page2.add(data_clound)
    _bar = force()
    page2.add(_bar)
    map = _map()
    page2.add(map)
    pie = _pie()
    page2.add(pie)
    return render_template('virtualization.html',
                           myechart=page2.render_embed(),
                           host=DEFAULT_HOST,
                           script_list=page2.get_js_dependencies())
コード例 #8
0
ファイル: app.py プロジェクト: ch812248495/website_project
def stock():
    page = Page()
    if request.method == 'POST':
        stock_num = request.form['stock_num']
        if stock_num:
            kline = k_line(stock_num)
            page.add(kline)
            if kline == 0:
                error = "No Such Stock, Check First"
                return render_template('stock.html', error=error)
            normalline = nomoral_line(stock_num)
            page.add(normalline)
            return render_template('stock.html',
                                   myechart=page.render_embed(),
                                   host=DEFAULT_HOST,
                                   script_list=page.get_js_dependencies())
        else:
            return render_template('stock.html')
    return render_template('stock.html')
コード例 #9
0
def index():
    stock_basics = pd.read_hdf(app.config['FIN_TECH_HDF5'],
                               'stock_basics',
                               mode='r')
    area_count = stock_basics.groupby('area')['code'].count().reset_index()
    area_sum = stock_basics.groupby('area')['totalAssets'].sum().reset_index()
    value_count = list(area_count['code'])
    attr_count = list(area_count['area'])
    value_sum = list(area_sum['totalAssets'].astype(int))
    attr_sum = list(area_sum['area'])
    map_count = Map("上市公司分布-公司数", width=1200, height=600)
    map_count.add("",
                  attr_count,
                  value_count,
                  maptype='china',
                  is_visualmap=True,
                  visual_range=[0, 400],
                  is_map_symbol_show=False,
                  visual_text_color='#000')
    map_sum = Map("上市公司分布-公司市值", width=1200, height=600)
    map_sum.add("",
                attr_sum,
                value_sum,
                maptype='china',
                is_visualmap=True,
                visual_range=[10000000, 1000000000],
                is_map_symbol_show=False,
                visual_text_color='#000')
    page = Page()
    page.add(map_count)
    page.add(map_sum)
    #     grid = Grid(width="100%")
    #     grid.add(map_count, grid_left="60%")
    #     grid.add(map_sum, grid_right="60%")
    return render_template(
        'chart.html',
        myechart=page.render_embed(),
        host=app.config['REMOTE_HOST'],
        #                            my_option=json_dumps(page.options),
        script_list=page.get_js_dependencies())
コード例 #10
0
def create_charts(data):
    style = Style(width=900, height=900)
    page = Page()
    html=''
    charts = GeoLines("丝绸之路", **style.init_style)

    data_eastnorth = [
        ['西安市', '彬县'],
        ['彬县', '泾川县'],
        ['泾川县', '固原市'],
        ['固原市', '靖远县'],
        ['靖远县', '武威市'],
        ['武威市', '张掖市']
    ]
    charts.add("东段北线", data_eastnorth, **style_geo)

    data_eastmid = [
        ['西安市', '彬县'],
        ['彬县', '泾川县'],
        ['泾川县', '平凉市'],
        ['平凉市', '会宁县'],
        ['会宁县', '兰州市'],
        ['兰州市', '武威市'],
        ['武威市', '张掖市']

    ]
    charts.add("东段中线", data_eastmid, **style_geo)

    data_eastsouth = [
        ['西安市', '凤翔县'],
        ['凤翔县', '天水市'],
        ['天水市', '陇西县'],
        ['陇西县', '临夏市'],
        ['临夏市', '乐都县'],
        ['乐都县', '西宁市'],
        ['西宁市', '张掖市']
    ]
    charts.add("东段南线", data_eastsouth, **style_geo)

    data_hexizoulang = [
        ['张掖', '酒泉'],
        ['酒泉', '玉门'],
        ['玉门', '瓜州']
    ]
    charts.add("河西走廊", data_hexizoulang, geo_cities_coords={
        '张掖': [100.45, 38.93],
        '酒泉': [98.500685, 39.740023],
        '玉门': [97.055736, 40.296519],
        '瓜州': [95.793335, 40.530274]
    }, **style_geo)


    data_westnorth = [
        ['瓜州', '哈密'],
        ['哈密', '伊川'],
        ['伊川', '吉木萨尔'],
        ['吉木萨尔', '乌鲁木齐'],
        ['乌鲁木齐', '伊宁'],
        ['伊宁', '碎叶']
    ]
    charts.add("中段北道", data_westnorth, geo_cities_coords={
        '瓜州': [95.793335, 40.530274],
        '哈密': [93.52294, 42.833441],
        '伊川': [91.435282, 43.430981],
        '吉木萨尔': [89.181374, 44.004888],
        '乌鲁木齐': [87.62214, 43.831179],
        '伊宁': [81.283092, 43.916546],
        '碎叶': [75.283092, 43.831179]
    }, **style_geo)

    data_westmid = [
        ['瓜州', '敦煌'],
        ['敦煌', '玉门关'],
        ['玉门关', '高昌'],
        ['高昌', '焉耆'],
        ['焉耆', '库车'],
        ['库车', '阿克苏'],
        ['阿克苏', '喀什'],
        ['喀什', '大宛']
    ]
    charts.add("中段中道",data_westmid, geo_cities_coords={
        '瓜州': [95.793335, 40.530274],
        '敦煌': [94.6806, 40.148308],
        '玉门关': [93.871678, 40.360147],
        '高昌': [89.192459, 42.948971],
        '焉耆': [86.588696, 42.065708],
        '库车': [82.969034, 41.723448],
        '阿克苏': [80.258894, 41.175899],
        '喀什': [75.975982,39.542678],
        '大宛': [70.258894, 41.175899]
    }, **style_geo)

    data_westsouth = [
        ['瓜州', '敦煌'],
        ['敦煌', '阳关'],
        ['阳关', '若羌县'],
        ['若羌县', '且丰县'],
        ['且丰县', '和田'],
        ['和田', '莎车'],
        ['莎车', '葱岭']
    ]
    charts.add("中段南道", data_westsouth, geo_cities_coords={
        '瓜州': [95.793335, 40.530274],
        '敦煌': [94.6806, 40.148308],
        '阳关': [94.060858, 39.940913],
        '若羌县': [89.060858, 39.940913],
        '且丰县': [86.560858, 38.540919],
        '和田': [79.933681, 37.121827],
        '莎车': [77.249562, 38.422871],
        '葱岭': [72.249562, 37.921827]

    }, **style_geo)
    page.add(charts)
    html=charts.render_embed()

    script = page.get_js_dependencies()
    return html, script
コード例 #11
0
ファイル: dashboard.py プロジェクト: xiaozhute/archery
def pyecharts(request):
    """dashboard view"""
    # 工单数量统计
    chart_dao = ChartDao()
    bar1 = Bar('SQL上线工单统计(数量)', width="100%")
    data = chart_dao.workflow_by_date(30)
    today = date.today()
    one_month_before = today - relativedelta(days=+30)
    attr = chart_dao.get_date_list(one_month_before, today)
    _dict = {}
    for row in data['rows']:
        _dict[row[0]] = row[1]
    value = [_dict.get(day) if _dict.get(day) else 0 for day in attr]
    bar1.add("月统计", attr, value, is_stack=False, legend_selectedmode='single')

    # 工单按组统计
    pie1 = Pie('SQL上线工单统计(组)', width="100%")
    data = chart_dao.workflow_by_group(30)
    attr = [row[0] for row in data['rows']]
    value = [row[1] for row in data['rows']]
    pie1.add("月统计", attr, value, is_legend_show=False, is_label_show=True)

    # 工单按人统计
    bar2 = Bar('SQL上线工单统计(用户)', width="100%")
    data = chart_dao.workflow_by_user(30)
    attr = [row[0] for row in data['rows']]
    value = [row[1] for row in data['rows']]
    bar2.add("月统计", attr, value, is_label_show=True)

    # SQL语句类型统计
    pie2 = Pie("SQL上线工单统计(类型)", width="100%")
    data = chart_dao.sql_syntax()
    attr = [row[0] for row in data['rows']]
    value = [row[1] for row in data['rows']]
    pie2.add("", attr, value, is_label_show=True)

    # SQL查询统计(每日检索行数)
    line1 = Line("SQL查询统计", width="100%")
    attr = chart_dao.get_date_list(one_month_before, today)
    effect_data = chart_dao.querylog_effect_row_by_date(30)
    effect_dict = {}
    for row in effect_data['rows']:
        effect_dict[row[0]] = int(row[1])
    effect_value = [effect_dict.get(day) if effect_dict.get(day) else 0 for day in attr]
    count_data = chart_dao.querylog_count_by_date(30)
    count_dict = {}
    for row in count_data['rows']:
        count_dict[row[0]] = int(row[1])
    count_value = [count_dict.get(day) if count_dict.get(day) else 0 for day in attr]

    line1.add("检索行数", attr, effect_value, is_stack=False, legend_selectedmode='single', mark_point=["average"])
    line1.add("检索次数", attr, count_value, is_stack=False, legend_selectedmode='single', is_smooth=True,
              mark_line=["max", "average"])

    # SQL查询统计(用户检索行数)
    pie4 = Pie("SQL查询统计(用户检索行数)", width="100%")
    data = chart_dao.querylog_effect_row_by_user(30)
    attr = [row[0] for row in data['rows']]
    value = [int(row[1]) for row in data['rows']]
    pie4.add("月统计", attr, value, radius=[40, 75], is_legend_show=False, is_label_show=True)

    # SQL查询统计(DB检索行数)
    pie5 = Pie("SQL查询统计(DB检索行数)", width="100%")
    data = chart_dao.querylog_effect_row_by_db(30)
    attr = [row[0] for row in data['rows']]
    value = [int(row[1]) for row in data['rows']]
    pie5.add("月统计", attr, value, is_legend_show=False, is_label_show=True)

    # 可视化展示页面
    page = Page()
    page.add(bar1)
    page.add(pie1)
    page.add(bar2)
    page.add(pie2)
    page.add(line1)
    page.add(pie4)
    page.add(pie5)
    myechart = page.render_embed()  # 渲染配置
    host = 'https://pyecharts.github.io/assets/js'  # js文件源地址
    script_list = page.get_js_dependencies()  # 获取依赖的js文件名称(只获取当前视图需要的js)
    return render(request, "dashboard.html", {"myechart": myechart, "host": host, "script_list": script_list})
コード例 #12
0
def create_charts(data):
    # data字典格式(三个表的情况下):
    # {'nouns':[str:表一的前描述,str:表一的后描述,数据1,数据2,...,数据n],'...':[...]}
    html = ''
    page = Page()
    style = Style(width=900, height=600)
    # 本页面包含:1:noun(两个数据noun,values)、
    # 表一:
    # 获取表一的数据
    html_before = data['nounfre'][0]
    html_after = data['nounfre'][1]
    keys = data['nounfre'][2]
    values = data['nounfre'][3]
    line = Line("唐诗词频--名词", **style.init_style)
    line.add("词频--名词",
             keys,
             values,
             is_smooth=True,
             is_fill=True,
             area_opacity=0.2,
             is_datazoom_show=True,
             datazoom_type="both",
             datazoom_range=[0, 60],
             xaxis_interval=1,
             xaxis_name="名词",
             yaxis_name="词频",
             xaxis_name_pos="end",
             yaxis_name_pos="end",
             is_more_utils=True)
    java_script = line.render_embed()
    html += html_before + java_script + html_after
    page.add(line)

    #表二
    html_before = data['geofre'][0]
    html_after = data['geofre'][1]
    keys = data['geofre'][2]
    values = data['geofre'][3]
    line = Line("唐诗词频--地理名词", **style.init_style)
    line.add("词频--地理名词",
             keys,
             values,
             is_smooth=True,
             is_fill=True,
             area_opacity=0.2,
             is_datazoom_show=True,
             datazoom_type="both",
             datazoom_range=[0, 60],
             xaxis_interval=1,
             xaxis_name="地理名词",
             yaxis_name="词频",
             xaxis_name_pos="end",
             yaxis_name_pos="end",
             is_more_utils=True)
    java_script = line.render_embed()
    html += html_before + java_script + html_after
    page.add(line)

    # 表三
    html_before = data['timefre'][0]
    html_after = data['timefre'][1]
    keys = data['timefre'][2]
    values = data['timefre'][3]
    line = Line("唐诗词频--地理名词", **style.init_style)
    line.add("词频--时间名词",
             keys,
             values,
             is_smooth=True,
             is_fill=True,
             area_opacity=0.2,
             is_datazoom_show=True,
             datazoom_type="both",
             datazoom_range=[0, 60],
             xaxis_interval=1,
             xaxis_name="时间名词",
             yaxis_name="词频",
             xaxis_name_pos="end",
             yaxis_name_pos="end",
             is_more_utils=True)
    java_script = line.render_embed()
    html += html_before + java_script + html_after
    page.add(line)

    # 表四
    html_before = data['verbfre'][0]
    html_after = data['verbfre'][1]
    keys = data['verbfre'][2]
    values = data['verbfre'][3]
    line = Line("唐诗词频--动词", **style.init_style)
    line.add("词频--动词",
             keys,
             values,
             is_smooth=True,
             is_fill=True,
             area_opacity=0.2,
             is_datazoom_show=True,
             datazoom_type="both",
             datazoom_range=[0, 60],
             xaxis_interval=1,
             xaxis_name="动词",
             yaxis_name="词频",
             xaxis_name_pos="end",
             yaxis_name_pos="end",
             is_more_utils=True)
    java_script = line.render_embed()
    html += html_before + java_script + html_after
    page.add(line)

    # 表五
    html_before = data['adjfre'][0]
    html_after = data['adjfre'][1]
    keys = data['adjfre'][2]
    values = data['adjfre'][3]
    line = Line("唐诗词频--xrc", **style.init_style)
    line.add("词频--形容词",
             keys,
             values,
             is_smooth=True,
             is_fill=True,
             area_opacity=0.2,
             is_datazoom_show=True,
             datazoom_type="both",
             datazoom_range=[0, 60],
             xaxis_interval=1,
             xaxis_name="形容词",
             yaxis_name="词频",
             xaxis_name_pos="end",
             yaxis_name_pos="end",
             is_more_utils=True)
    java_script = line.render_embed()
    html += html_before + java_script + html_after
    page.add(line)

    script = page.get_js_dependencies()
    return html, script
コード例 #13
0
def dau():
    # 构造Request和访问协议是否是https
    appDAUQuest = aop.api.UmengUappGetActiveUsersRequest()
    appNEWQuest = aop.api.UmengUappGetNewUsersRequest()

    #计算时间
    now_date = datetime.now().strftime('%Y-%m-%d')
    start_date = (datetime.now() + timedelta(days=-30)).strftime('%Y-%m-%d')

    #创建字典
    iosDAU = {}
    andDAU = {}
    allDAU = {}
    iosNEW = {}
    andNEW = {}
    allNEW = {}

    #IOS DAU
    respIOSDAU = appDAUQuest.get_response(None,
                                          appkey="5c76338bb465f50bc6001045",
                                          startDate=start_date,
                                          endDate=now_date,
                                          periodType="daily")
    for k in respIOSDAU['activeUserInfo']:
        iosDAU[k['date']] = k['value']

    #IOS NEW
    respIOSNEW = appNEWQuest.get_response(None,
                                          appkey="5c76338bb465f50bc6001045",
                                          startDate=start_date,
                                          endDate=now_date,
                                          periodType="daily")
    for k in respIOSNEW['newUserInfo']:
        iosNEW[k['date']] = k['value']

    #Android DAU
    respANDDAU = appDAUQuest.get_response(None,
                                          appkey="5c73a5e9f1f55699ab0000ef",
                                          startDate=start_date,
                                          endDate=now_date,
                                          periodType="daily")
    for k in respANDDAU['activeUserInfo']:
        andDAU[k['date']] = k['value']

    #Android NEW
    respANDNEW = appNEWQuest.get_response(None,
                                          appkey="5c73a5e9f1f55699ab0000ef",
                                          startDate=start_date,
                                          endDate=now_date,
                                          periodType="daily")
    for k in respANDNEW['newUserInfo']:
        andNEW[k['date']] = k['value']

    x, y = Counter(iosDAU), Counter(andDAU)
    allDAU = dict(x + y)

    x, y = Counter(iosNEW), Counter(andNEW)
    allNEW = dict(x + y)

    page = Page()
    #处理渲染
    columns = list(allDAU.keys())

    #设置DAU数据
    data1 = list(iosDAU.values())
    data2 = list(andDAU.values())
    data3 = list(allDAU.values())
    #设置NEW数据
    data4 = list(iosNEW.values())
    data5 = list(andNEW.values())
    data6 = list(allNEW.values())

    #设置柱状图的主标题与副标题
    bar = Bar("DAU", "完美世界电竞App最近一个月的DAU")
    #添加柱状图的数据及配置项
    bar.add("IOS", columns, data1, is_datazoom_show=True)
    bar.add("Android", columns, data2, is_datazoom_show=True)
    bar.add("全部", columns, data3, is_datazoom_show=True)

    line = Line("Line Chart Demo")
    line.add("全部", columns, data3, is_smooth=True)

    overlap = Overlap(height=500, width=1200)
    overlap.add(bar)
    overlap.add(line)

    #设置柱状图的主标题与副标题
    bar = Bar("NEW USER", "完美世界电竞App最近一个月的新增用户")
    #添加柱状图的数据及配置项
    bar.add("IOS", columns, data4, is_datazoom_show=True)
    bar.add("Android", columns, data5, is_datazoom_show=True)
    bar.add("全部", columns, data6, is_datazoom_show=True)

    line = Line("Line Chart Demo")
    line.add("全部", columns, data6, is_smooth=True)

    overlap2 = Overlap(height=500, width=1200)
    overlap2.add(bar)
    overlap2.add(line)

    page.add(overlap)
    page.add(overlap2)

    #生成本地文件(默认为.html文件)
    return render_template('bar.html',
                           myechart=page.render_embed(),
                           script_list=page.get_js_dependencies())
コード例 #14
0
def home():
    """
    主页信息
    """
    # 将要显示的数据
    print('test')
    city_num_list = CITY_NUM_LIST[:100]
    kw_num_city_list = KW_NUM_OF_ALL_CITY_LIST[:100]
    lan_num_list = LAN_NUM_LIST
    job_num_list = JOB_NUM_LIST
    all_num = ALL_NUM

    # 生成相应的图表
    top_10_city_page = Page()
    top_10_city_page.add(
        bar_ssdd(
            attr_v1_v2=kw_num_city_list[:10],
            chart_name='前十城市中语言数与职位数对比-折线图',
            v1_name='语言数量',
            v2_name='职位数量',
        ))

    top_10_city_map_page = Page()
    top_10_city_map_page.add(
        geo_qgtd(attr_v1=city_num_list[:10],
                 chart_name='前十城市地理位置',
                 v1_name='城市'))

    top_100_city_page = Page()
    top_100_city_page.add(
        bar_sssf(attr_v1=city_num_list,
                 chart_name='前百城市职位数量-柱状图',
                 v1_name='职位数'))
    top_100_city_map_page = Page()
    top_100_city_map_page.add(
        geo_qgtd(attr_v1=city_num_list[:100],
                 chart_name='前百城市地理位置',
                 v1_name='城市'))

    lan_page = Page()
    lan_page.add(
        pie_yht(attr_v1=lan_num_list, chart_name='各种语言占总数比值-饼图', v1_name='语言'))

    job_page = Page()
    job_page.add(
        pie_yht(attr_v1=job_num_list, chart_name='各种职位占总数比值-饼图', v1_name='职位'))

    return render_template(
        'index.html',
        title='首页',
        all_num=all_num,
        top5_city=DATA.top5_city_name(),
        top5_lan=DATA.top5_lan_name(),
        top5_job=DATA.top5_job_name(),
        top_10_city=top_10_city_page.render_embed(),
        top_10_city_map_page=top_10_city_map_page.render_embed(),
        top_100_city_page=top_100_city_page.render_embed(),
        top_100_city_map_page=top_100_city_map_page.render_embed(),
        lan_page=lan_page.render_embed(),
        job_page=job_page.render_embed(),
        script_list=top_10_city_page.get_js_dependencies() +
        top_100_city_page.get_js_dependencies() +
        lan_page.get_js_dependencies() + job_page.get_js_dependencies() +
        top_10_city_map_page.get_js_dependencies() +
        top_100_city_map_page.get_js_dependencies(),
    )
コード例 #15
0
def events():

    #构造Request和访问协议是否是https
    req = aop.api.UmengUappEventListRequest()
    #得到时间
    get_date = request.args.get("date")

    if is_valid_date(get_date) == False:
        now_date = datetime.now().strftime('%Y-%m-%d')
    else:
        now_date = get_date

    AndEvents = {}
    IosEvents = {}
    allEvents = {}

    resp = req.get_response(None,
                            appkey="5c73a5e9f1f55699ab0000ef",
                            startDate=now_date,
                            endDate=now_date,
                            perPage=30,
                            page=1,
                            version="")
    AndEvents[now_date] = {}
    for k in resp['eventInfo']:
        AndEvents[now_date][k['displayName']] = k['count']

    resp = req.get_response(None,
                            appkey="5c76338bb465f50bc6001045",
                            startDate=now_date,
                            endDate=now_date,
                            perPage=30,
                            page=1,
                            version="")
    IosEvents[now_date] = {}
    for k in resp['eventInfo']:
        IosEvents[now_date][k['displayName']] = k['count']

    x, y = Counter(AndEvents[now_date]), Counter(IosEvents[now_date])
    allEvents[now_date] = {}
    allEvents[now_date] = dict(x + y)

    resIosEvents = {}
    resAndEvents = {}
    for k in allEvents[now_date].keys():
        if k not in AndEvents[now_date]:
            resAndEvents[k] = 0
        else:
            resAndEvents[k] = AndEvents[now_date][k]

        if k not in IosEvents[now_date]:
            resIosEvents[k] = 0
        else:
            resIosEvents[k] = IosEvents[now_date][k]

    page = Page()
    #处理渲染
    columns = list(allEvents[now_date].keys())

    #设置DAU数据
    data1 = list(resIosEvents.values())
    data2 = list(resAndEvents.values())
    data3 = list(allEvents[now_date].values())

    #设置柱状图的主标题与副标题
    bar = Bar("EVENTS", "完美世界电竞App的事件消息数:" + now_date)
    #添加柱状图的数据及配置项
    bar.add("IOS",
            columns,
            data1,
            is_more_utils=True,
            xaxis_label_textsize=10,
            is_datazoom_show=True)
    bar.add("Android",
            columns,
            data2,
            is_more_utils=True,
            xaxis_label_textsize=10)
    bar.add("全部",
            columns,
            data3,
            is_more_utils=True,
            xaxis_label_textsize=10,
            xaxis_interval=-10,
            xaxis_rotate=45)

    overlap = Overlap(height=600, width=1600)
    overlap.add(bar)

    page.add(overlap)

    #生成本地文件(默认为.html文件)
    return render_template('events.html',
                           myechart=page.render_embed(),
                           script_list=page.get_js_dependencies())
コード例 #16
0
def create_charts(data):
    page = Page()
    style = Style(width=900, height=900)
    html = ''

    html_before = data['full'][0]
    html_after = data['full'][1]
    nodes_full = data['full'][2]
    links_full = data['full'][3]
    category=data['full'][4]
    chart = Graph("全唐诗人关系图", **style.init_style)
    chart.add("", nodes_full, links_full,category, line_color='#aaa', label_pos="center",
              is_label_show=True, graph_repulsion=1000, is_legend_show=True,
              line_curve=0.4, label_text_color="#000", graph_layout='circular',
              label_emphasis_textcolor='#000')
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    # style = Style(width=900, height=600)

    html_before = data['early'][0]
    html_after = data['early'][1]
    nodes_early = data['early'][2]
    links_early = data['early'][3]

    chart = Graph("初唐诗人关系图", **style.init_style)
    chart.add("", nodes_early, links_early, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    html_before = data['middle'][0]
    html_after = data['middle'][1]
    nodes_middle = data['middle'][2]
    links_middle = data['middle'][3]
    chart = Graph("中唐诗人关系图", **style.init_style)
    chart.add("", nodes_middle, links_middle, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    html_before = data['high'][0]
    html_after = data['high'][1]
    nodes_high = data['high'][2]
    links_high = data['high'][3]
    chart = Graph("盛唐诗人关系图", **style.init_style)
    chart.add("", nodes_high, links_high, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)

    html_before = data['late'][0]
    html_after = data['late'][1]
    nodes_late = data['late'][2]
    links_late = data['late'][3]
    chart = Graph("晚唐诗人关系图", **style.init_style)
    chart.add("", nodes_late, links_late, line_color='#aaa', label_pos="center", is_label_show=True,
              graph_repulsion=1000, is_legend_show=False, line_curve=0.2, label_text_color=None)
    java_script = chart.render_embed()
    html += html_before + java_script + html_after
    page.add(chart)




    # 最后
    script = page.get_js_dependencies()
    return html, script
コード例 #17
0
def pyecharts(request):
    # 工单数量统计
    bar1 = Bar('SQL上线工单统计(数量)', width="100%")
    data = chart_dao.workflow_by_date(1)
    begin_date = (date.today() - relativedelta(months=+1)).strftime("%Y-%m-%d")
    attr = chart_dao.get_date_list(begin_date,
                                   date.today().strftime("%Y-%m-%d"))
    dict = {}
    for row in data['rows']:
        dict[row[0]] = row[1]
    value = [dict.get(day) if dict.get(day) else 0 for day in attr]
    bar1.add("月统计", attr, value, is_stack=False, legend_selectedmode='single')

    # 工单按组统计
    pie1 = Pie('SQL上线工单统计(组)', width="100%")
    data = chart_dao.workflow_by_group(1)
    attr = [row[0] for row in data['rows']]
    value = [row[1] for row in data['rows']]
    pie1.add("月统计", attr, value, is_legend_show=False, is_label_show=True)

    # 工单按人统计
    bar2 = Bar('SQL上线工单统计(用户)', width="100%")
    data = chart_dao.workflow_by_user(1)
    attr = [row[0] for row in data['rows']]
    value = [row[1] for row in data['rows']]
    bar2.add("月统计", attr, value, is_label_show=True)

    # SQL语句类型统计
    pie2 = Pie("SQL上线工单统计(类型)", width="100%")
    data = chart_dao.sql_syntax()
    attr = [row[0] for row in data['rows']]
    value = [row[1] for row in data['rows']]
    pie2.add("", attr, value, is_label_show=True)

    # SQL执行情况统计
    pie3 = Pie("SQL上线工单统计(Inception)", width="100%")
    data = InceptionDao().statistic()
    attr = data['column_list']
    if data['column_list']:
        value = [int(row) for row in data['rows'][0]]
    else:
        value = []
    pie3.add("", attr, value, is_legend_show=False, is_label_show=True)

    # SQL查询统计(每日检索行数)
    line1 = Line("SQL查询统计", width="100%")
    begin_date = (date.today() - relativedelta(months=+1)).strftime("%Y-%m-%d")
    attr = chart_dao.get_date_list(begin_date,
                                   date.today().strftime("%Y-%m-%d"))
    effect_data = chart_dao.querylog_effect_row_by_date(1)
    effect_dict = {}
    for row in effect_data['rows']:
        effect_dict[row[0]] = int(row[1])
    effect_value = [
        effect_dict.get(day) if effect_dict.get(day) else 0 for day in attr
    ]
    count_data = chart_dao.querylog_count_by_date(1)
    count_dict = {}
    for row in count_data['rows']:
        count_dict[row[0]] = int(row[1])
    count_value = [
        count_dict.get(day) if count_dict.get(day) else 0 for day in attr
    ]

    line1.add("检索行数",
              attr,
              effect_value,
              is_stack=False,
              legend_selectedmode='single',
              mark_point=["average"])
    line1.add("检索次数",
              attr,
              count_value,
              is_stack=False,
              legend_selectedmode='single',
              is_smooth=True,
              mark_line=["max", "average"])

    # SQL查询统计(用户检索行数)
    pie4 = Pie("SQL查询统计(用户检索行数)", width="100%")
    data = chart_dao.querylog_effect_row_by_user(1)
    attr = [row[0] for row in data['rows']]
    value = [int(row[1]) for row in data['rows']]
    pie4.add("月统计",
             attr,
             value,
             radius=[40, 75],
             is_legend_show=False,
             is_label_show=True)

    # SQL查询统计(DB检索行数)
    pie5 = Pie("SQL查询统计(DB检索行数)", width="100%")
    data = chart_dao.querylog_effect_row_by_db(1)
    attr = [row[0] for row in data['rows']]
    value = [int(row[1]) for row in data['rows']]
    pie5.add("月统计", attr, value, is_legend_show=False, is_label_show=True)

    # 可视化展示页面
    page = Page()
    page.add(bar1)
    page.add(pie1)
    page.add(bar2)
    page.add(pie2)
    page.add(pie3)
    page.add(line1)
    page.add(pie4)
    page.add(pie5)
    myechart = page.render_embed()  # 渲染配置
    host = 'https://pyecharts.github.io/assets/js'  # js文件源地址
    script_list = page.get_js_dependencies()  # 获取依赖的js文件名称(只获取当前视图需要的js)
    return render(request, "dashboard.html", {
        "myechart": myechart,
        "host": host,
        "script_list": script_list
    })