Exemple #1
0
def home():
    _pie = pie_chart(w=260, h=240, is_show=False, is_toolbox_show=False)
    pie_javascript_snippet = TRANSLATOR.translate(_pie.options)
    _bar = bar_chart(w=220, h=220, is_show=False, is_toolbox_show=False)
    pie_javascript_snippet = TRANSLATOR.translate(_pie.options)

    return render_template(
        'home.html',
        host=REMOTE_HOST,
        script_list=_pie.get_js_dependencies(),
        # 渲染图表
        pie_chart=_pie.render_embed(),
        bar_chart=_bar.render_embed())
Exemple #2
0
def attack_status(attacks, is_reload=0):
    attack_type = list(attacks.keys())
    attack_count = list(attacks.values())

    status = Pie('           攻击事件总览\n           -----------------',
                 width="100%",
                 height="100%",
                 title_pos="left",
                 title_top=40,
                 title_color="#6cb7c9")

    # attack_type = ['SQL注入', 'XSS跨站', '暴力破解', 'DoS', '木马后门']
    # attack_num = [90, 30, 102, ```3`0, `20]

    status.add("",
               attack_type,
               attack_count,
               radius=[30, 38],
               label_text_color=None,
               legend_orient='vertical',
               center=[50, 60],
               is_legend_show=False,
               is_toolbox_show=False,
               is_label_show=False)

    if is_reload:
        option = status.get_options()
        option = TRANSLATOR.translate(option)
        option = option.as_snippet()
        return option
    else:
        return status
Exemple #3
0
def generate_js_content(*charts):
    """
    Generate the initial code fragment for one or some chart instances.
    """
    contents = []

    for chart in charts:
        FUNCTION_TRANSLATOR.reset()
        for handler in chart.event_handlers.values():
            FUNCTION_TRANSLATOR.feed(handler)

        javascript_snippet = TRANSLATOR.translate(chart.options)
        kwargs = dict(
            chart_id=chart.chart_id,
            renderer=chart.renderer,
            theme=chart.theme,
            custom_function=javascript_snippet.function_snippet,
            options=javascript_snippet.option_snippet,
        )
        js_content = CHART_CONFIG_FORMATTER.format(**kwargs)
        for event_name, handler in chart.event_handlers.items():
            # please note handler has been translated in previous block
            event_args = dict(
                event_name=event_name,
                chart_id=chart.chart_id,
                handler_name=handler.__name__,
            )
            js_content += CHART_EVENT_FORMATTER.format(**event_args)

        contents.append(js_content)
    contents = "\n".join(contents)
    return contents
 def create_bar(self, v):
     bar = Bar(TITLE_TEXT, TITLE_SUBTEXT)
     bar.add('商家1', ATTR, v, is_more_utils=True)
     bar.add('商家2', ATTR, v, is_more_utils=True)
     snippet = TRANSLATOR.translate(bar.options)
     options = snippet.as_snippet()
     return options
Exemple #5
0
def stream_status(streams, is_reload=0):
    grid = Grid(width="100%", height="100%")

    # stream_time = ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00', '08:00', '09:00', '10:00',
    #                '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00',
    #                '22:00', '23:00', '24:00']
    # stream_in = [13, 6, 22, 5, 58, 3, 75, 98, 48, 83, 8, 38, 89, 99, 8, 21, 77, 86, 47, 76, 31, 92, 77, 47, 0]
    # stream_out = [5, 81, 99, 83, 55, 89, 58, 5, 38, 76, 46, 17, 68, 4, 12, 81, 2, 73, 54, 71, 50, 28, 90, 46, 0]

    stream_time = list(streams.keys())
    val = list(streams.values())
    stream_in = [v[0] for v in val]
    stream_out = [v[1] for v in val]

    stream = Line('    进出口流量统计\n    -------------------', width="100%", height="100%",
                  title_color="#6cb7c9", title_pos="left", title_top=10)
    stream.add("入口流量", stream_time, stream_in, is_fill=True, line_opacity=1,
               line_color="#6cb7c9", label_color=["#6cb7c9", "#344356"],
               area_opacity=0.7, is_smooth=True, is_toolbox_show=False, is_yaxis_show=False)
    stream.add("出口流量", stream_time, stream_out, is_fill=True, area_color='#000',
               area_opacity=0.4, is_smooth=True, is_toolbox_show=False, is_yaxis_show=False,
               is_legend_show=True, legend_text_color="#6cb7c9", xaxis_line_color="#6cb7c9")

    grid.add(stream, grid_bottom=30, grid_left=30, grid_top=50, grid_right=30)
    if is_reload:
        option = grid.get_options()
        option = TRANSLATOR.translate(option)
        option = option.as_snippet()
        return option
    else:
        return grid
def requests_status(requests, is_reload=0):
    country = list(requests.keys())[:10]
    counts = list(requests.values())[:10]
    # country = ['美国', '中国', '英国', '俄罗斯', '法国', '印度', '韩国', '巴西', '澳大利亚'][::-1]
    # times = [120, 70, 60, 50, 43, 12, 2, 2, 1][::-1]
    request = Bar('    请求IP来源\n    --------------',
                  width="100%",
                  height="100%",
                  title_color="#6cb7c9",
                  title_pos="left",
                  title_top=10)
    request.add('',
                country,
                counts,
                is_convert=True,
                is_toolbox_show=False,
                is_yaxis_show=False,
                is_label_show=True,
                label_pos="right",
                xaxis_line_color="#6cb7c9",
                label_color="#fff",
                is_legend_show=True)

    if is_reload:
        option = request.get_options()
        option = TRANSLATOR.translate(option)
        option = option.as_snippet()
        return option
    return request
Exemple #7
0
 def create_chart(chart_type, height):
     datas = json.loads(str(request.data, 'utf-8'))
     title = datas.get('title')
     datas = datas.get('datas')
     if chart_type == 'bar':
         chart = build_chart_bar(title, datas)
     elif chart_type == 'pie':
         chart = build_chart_pie(title, datas)
     elif chart_type == 'guage':
         chart = build_chart_gauge(title, datas)
     else:
         chart = None
         abort(404)
     javascript_snippet = TRANSLATOR.translate(chart.options)
     html = render_template(
         'pyecharts2.html',
         chart_id=chart.chart_id,
         my_title=u"明州体检",
         host='/static',
         renderer=chart.renderer,
         my_width="100%",
         my_height=height,
         custom_function=javascript_snippet.function_snippet,
         options=javascript_snippet.option_snippet,
         script_list=chart.get_js_dependencies())
     tmp_path = app.config['UPLOAD_FOLDER_TMP']
     tmp_filename = os.path.join(
         tmp_path, "%s_%s_%s.html" % (title, chart_type, cur_timep()))
     with open(tmp_filename, "w", encoding="UTF-8") as f:
         f.write(html)
     return jsonify({
         'code': 1,
         'mes': '创建图表成功',
         'data': os.path.basename(tmp_filename)
     })
Exemple #8
0
def hello():
    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

    # s3d = scatter3d()
    # return render_template(
    #     "bbspyecharts.html",
    #     myechart=s3d.render_embed(),
    #     host=REMOTE_HOST,
    #     script_list=s3d.get_js_dependencies(),
    # )

    _bar = data_mix()  # bar_chart()
    javascript_snippet = TRANSLATOR.translate(_bar.options)

    return render_template(
        "bbsResize.html",
        chart_id=_bar.chart_id,
        host=REMOTE_HOST,
        renderer=_bar.renderer,
        my_width="100%",
        my_height=600,
        custom_function=javascript_snippet.function_snippet,
        options=javascript_snippet.option_snippet,
        script_list=_bar.get_js_dependencies(),
    )
Exemple #9
0
    def NoneSelect(self):
        bar = Bar("", "")
        # v1 = {}
        X = [
            "Active Vertex Detection", "Active Vertex collection",
            "Message Generation"
        ]
        Ave = [0, 0, 0]
        Max = [-1, -1, -1]
        Min = [1000000, 100000, 1000000]

        for i in range(4):
            Ave[0] += active_time_info[i] / 4.0
            Ave[1] += get_data_time_info[i] / 4.0
            Ave[2] += dcal_time_info[i] / 4.0

            Max[0] = max(Max[0], active_time_info[i])
            Max[1] = max(Max[1], get_data_time_info[i])
            Max[2] = max(Max[2], dcal_time_info[i])

            Min[0] = min(Min[0], active_time_info[i])
            Min[1] = min(Min[1], get_data_time_info[i])
            Min[2] = min(Min[2], dcal_time_info[i])

        bar.add('Minimum', X, Min, is_more_utils=True)
        bar.add('Average', X, Ave, is_more_utils=True)
        bar.add('Maximum', X, Max, is_more_utils=True)

        snippet = TRANSLATOR.translate(bar.options)
        options = snippet.as_snippet()

        return options
Exemple #10
0
    def OnlyPartition(self):

        item = self.ui.SelectPartition.selectedItems()

        if item == []: row = 0
        else: row = int(item[0].text(0)[-1])
        line = Line("", "")  # main Title and sub title
        X = []
        for i in range(1, len(active_time_list[0]) + 1):
            X.append(i)
        line.add("Active Vertex Detection",
                 X,
                 active_time_list[row],
                 is_smooth=True,
                 mark_line=["max"],
                 line_width=2)
        line.add("Active Vertex Collection",
                 X,
                 get_data_time_list[row],
                 is_smooth=True,
                 mark_line=["max"],
                 line_width=2)
        line.add("Message Generation", X, dcal_time_list[row], is_smooth=True, mark_line=["max"], xaxis_name="Iteration",\
                 yaxis_name="Time(s)",label_text_size=labelsize,label_color=None,legend_text_size=labelsize,xaxis_name_size=xysize,yaxis_name_size=xysize,line_width=2)
        snippet = TRANSLATOR.translate(line.options)
        options = snippet.as_snippet()
        self.writelog("Showing all iterations by partition ... ")
        return options
Exemple #11
0
def generate_js_content(*charts):
    """
    Generate the initial code fragment for one or some chart instances.
    """
    contents = []

    for chart in charts:
        FUNCTION_TRANSLATOR.reset()
        for handler in chart.event_handlers.values():
            FUNCTION_TRANSLATOR.feed(handler)

        javascript_snippet = TRANSLATOR.translate(chart.options)
        kwargs = dict(
            chart_id=chart.chart_id,
            renderer=chart.renderer,
            theme=chart.theme,
            custom_function=javascript_snippet.function_snippet,
            options=javascript_snippet.option_snippet,
        )
        js_content = CHART_CONFIG_FORMATTER.format(**kwargs)
        for event_name, handler in chart.event_handlers.items():
            # please note handler has been translated in previous block
            event_args = dict(
                event_name=event_name,
                chart_id=chart.chart_id,
                handler_name=handler.__name__,
            )
            js_content += CHART_EVENT_FORMATTER.format(**event_args)

        contents.append(js_content)
    contents = "\n".join(contents)
    return contents
Exemple #12
0
    def Create_Overall_Iteration_Time(self):
        line = Line(
            "",
            "",
        )  # main Title and sub title
        X = []
        for i in range(1, len(sync_point_time) + 1):
            X.append(i)

        line.add("GraphX synchronization",
                 X,
                 sync_point_time,
                 is_smooth=True,
                 mark_line=["max"],
                 line_width=2)
        line.add("GraphX maintenance",
                 X,
                 sync_edge_time,
                 is_smooth=True,
                 mark_line=["max"],
                 line_width=2)
        line.add("Computation",
                 X,
                 cal_time,
                 is_smooth=True,
                 mark_line=["max"],
                 line_width=2)
        line.add("Result aggregation", X, tot_time, is_smooth=True, mark_line=["max"], xaxis_name="Iteration", yaxis_name="Time(s)",\
                 label_text_size=labelsize,label_color=None,legend_text_size=labelsize,xaxis_name_size=xysize,yaxis_name_size=xysize,line_width=2)

        snippet = TRANSLATOR.translate(line.options)
        options = snippet.as_snippet()
        print(options)
        return options
Exemple #13
0
def chart_view02():
    # 从mongo中获取数据
    (x, y) = BidNotice.get_records_group_by_source_ch()

    bar = Bar("发布单位分析图")
    bar.add("发布单位",
            x,
            y,
            is_label_show=True,
            is_datazoom_show=True,
            datazoom_type='both',
            datazoom_range=[0, 20])
    javascript_snippet = TRANSLATOR.translate(bar.options)  # 将bar的属性设置翻译为js脚本

    return render_template(
        template_name_or_list="pyecharts.html",
        chart_id=bar.chart_id,
        host=REMOTE_HOST,
        renderer=bar.render,
        my_width="100%",  # 默认设置,定义图表的宽度
        my_height=600,  # 默认设置,定义图表的高度
        custom_function=javascript_snippet.
        function_snippet,  # 默认设置,保存图片的方法,似乎基于node.js
        options=javascript_snippet.option_snippet,  # 默认设置,
        script_list=bar.get_js_dependencies(),  # 默认设置,需要动态加载的js文件
    )
 def create_radar(self, v): #绘制雷达图
     radar = Radar(self.TITLE_TEXT, self.TITLE_SUBTEXT)
     schema = [
         ("口头语言", 5), ("原创性", 5), ("问题敏感度", 5),
         ("逻辑思维", 5), ("数学能力", 5), ("人际沟通", 5)
     ]
     radar.config(schema)
     v1 = [v]
     v2 = [[2,3,5,4,2,1]]
     radar.add(
         "第一次推荐输入", 
         v1,
         is_splitline = True, 
         is_axisline_show = True,
         is_label_show=True,
         area_opacity = 0.2
     )
     radar.add(
         "第二次推荐输入", 
         v2, 
         label_color=["#4e79a7"], 
         is_area_show= False,
         legend_selectedmode='single',
         area_opacity = 0.5
     )
     snippet = TRANSLATOR.translate(radar.options)
     options = snippet.as_snippet()
     return options
Exemple #15
0
def chart_view04():
    # 从mongo中获取数据
    (x, y) = BidNotice.get_records_group_by_timestamp(days_before=-30)

    # 设置bar图形的基本属性
    bar = Bar("招标公告爬取时间图", "From: cmccb2b")
    bar.use_theme('light')
    bar.add(
        "爬取日期",
        x,
        y,  # 从Mongo读取的数据存放在这里
        is_stack=False,
        is_datazoom_show=True,  # 设置bar图形的datazoom的拖拽效果
        datazoom_type="both",
        datazoom_range=[80, 100])
    javascript_snippet = TRANSLATOR.translate(bar.options)  # 将bar的属性设置翻译为js脚本
    # bar.print_echarts_options()                  # 该行只为了打印配置项,方便调试时使用

    return render_template(
        "pyecharts.html",  # 自定义,位于templates/的模版文件
        chart_id=bar.chart_id,  # 默认设置,
        host=REMOTE_HOST,  # 常量定义,存放js文件的url地址
        renderer=bar.renderer,  # 默认设置,
        my_width="100%",  # 默认设置,定义图表的宽度
        my_height=600,  # 默认设置,定义图表的高度
        custom_function=javascript_snippet.
        function_snippet,  # 默认设置,保存图片的方法,似乎基于node.js
        options=javascript_snippet.option_snippet,  # 默认设置,
        script_list=bar.get_js_dependencies(),  # 默认设置,需要动态加载的js文件
    )
Exemple #16
0
 def create_line(self, x_list, y_list):
     y_list1, y_list2, y_list3 = y_list
     line = Line('算力曲线', '')
     line.add("平均算力",
              x_list,
              y_list1,
              is_smooth=True,
              mark_line=["max", "average"])
     line.add("理论算力",
              x_list,
              y_list2,
              is_smooth=True,
              mark_line=["max", "average"])
     line.add("短期算力",
              x_list,
              y_list3,
              is_smooth=True,
              mark_line=["max", "average"])
     snippet = TRANSLATOR.translate(line.options)
     options = snippet.as_snippet()
     self.view.page().runJavaScript(f'''
             myChart2.clear();
             var option = eval({options});
             myChart2.setOption(option);
         ''')
 def create_line_bar(self, v):
     line = Line(TITLE_TEXT, TITLE_SUBTEXT)
     line.add("商家", ATTR, v, is_smooth=True, mark_line=["max", "average"])
     bar = Bar(TITLE_TEXT, TITLE_SUBTEXT)
     bar.add('商家', ATTR, v, is_more_utils=True)
     bar.overlap(line)
     snippet = TRANSLATOR.translate(bar.options)
     options = snippet.as_snippet()
     return options
 def create_bar(self, v):
     bar = Bar(self.TITLE_TEXT, self.TITLE_SUBTEXT)
     bar.add('Science', self.ATTR, v, is_more_utils=True)
     bar.add('Engineering', self.ATTR, v, is_more_utils=True)
     bar.add('Technology', self.ATTR, v, is_more_utils=True)
     bar.add('Mathematics', self.ATTR, v, is_more_utils=True)
     snippet = TRANSLATOR.translate(bar.options)
     options = snippet.as_snippet()
     return options
Exemple #19
0
def render():
    _overlap = render_picture()
    return render_template('chart.html',
                           chart_id=_overlap.chart_id,
                           host=REMOTE_HOST,
                           my_width="100%",
                           my_height=800,
                           my_option=TRANSLATOR.translate(
                               _overlap.options).as_snippet(),
                           script_list=_overlap.get_js_dependencies())
Exemple #20
0
def test_basic_usage():
    def my_fmt(x):
        return x + 5

    def my_fmt2(x, z, y):
        return '{x},{y},{z}'.format(x=x, y=y, z=z)

    source = {'a': '23', 'b': my_fmt, 'c': my_fmt2, 'd': '-=>test<=-'}
    snippet = TRANSLATOR.translate(source)
    assert 'function my_fmt' in snippet.function_snippet
    assert 'function my_fmt2' in snippet.function_snippet
    assert 'function test' not in snippet.function_snippet
    assert '"my_fmt"' not in snippet.option_snippet
    assert '"my_fmt2"' not in snippet.option_snippet
    assert '"-=>test<=-"' in snippet.option_snippet

    source2 = {'e': my_fmt}
    snippet = TRANSLATOR.translate(source2)
    assert 'function my_fmt' in snippet.function_snippet
    assert '"my_fmt"' not in snippet.option_snippet
Exemple #21
0
    def post(self, request, **kwargs):
        echarts = self.get_echarts_instance(**kwargs)
        datas = {}
        # logger.debug('echarts keys:', echarts.keys())
        for name, chart in echarts.items():

            datas[name] = TRANSLATOR.translate(chart.options).as_snippet()
            
            # logger.debug(name, chart.options['legend'])
            # logger.debug('*'*100)
        return JsonResponse(data=datas, safe=False)
Exemple #22
0
def test_date():
    a_date = datetime.date(2018, 4, 20)
    option = {'date': a_date}
    expected = """
    {
        "date": "2018-04-20"
    }
    """

    actual = TRANSLATOR.translate(option)
    eq_(actual.option_snippet, dedent(expected).strip())
 def create_line_bar(self, v):
     line = Line(self.TITLE_TEXT, self.TITLE_SUBTEXT)
     line.add("属性", self.ATTR, v, is_smooth=True, mark_line=["max", "average"])
     bar = Bar(self.TITLE_TEXT, self.TITLE_SUBTEXT)
     bar.add('属性', self.ATTR, v, is_more_utils=True)
     overlap = Overlap()
     overlap.add(line)
     overlap.add(bar)
     snippet = TRANSLATOR.translate(overlap.options)
     options = snippet.as_snippet()
     return options
Exemple #24
0
def edit_chart(id):
    if request.method == 'GET':
        chart = ChartInfo.query.get(id)
        data = query_engine.query_all(chart.select_sql)
        chart_view = ChartView.create_instance("pyecharts",
                                               chart.chart_type,
                                               title=chart.title)
        for item in chart.yaxis.split(','):
            chart_view.add(item,
                           data[chart.xaxis].tolist(),
                           data[item].tolist(),
                           xaxis_name=chart.x_axis_name,
                           yaxis_name=chart.y_axis_name,
                           is_datazoom_show=chart.is_data_zoom,
                           is_visualmap=chart.is_visual_map,
                           xaxis_name_pos='end',
                           yaxis_name_pos='end',
                           yaxis_name_gap=40,
                           is_convert=chart.is_convert,
                           maptype='china',
                           geo_normal_color="#E5E7E9",
                           geo_emphasis_color="#CACFD2")
        javascript_snippet = TRANSLATOR.translate(chart_view.options)
        return baseapi.success(
            data="true",
            xy_axis=data.columns.values.tolist(),
            custom_function=javascript_snippet.function_snippet,
            options=javascript_snippet.option_snippet,
            chart_info=chart.serialize())
    elif request.method == 'POST':
        title = request.form.get('chartTitle')
        chart_type = request.form.get('chartType')
        x_axis_name = request.form.get('xaxisName')
        y_axis_name = request.form.get('yaxisName')
        xaxis = request.form.get('xaxis')
        yaxis = request.form.getlist('yaxis')
        data_zoom = request.form.get('isDataZoom') == 'on'
        visual_map = request.form.get('isVisualMap') == 'on'
        is_convert = request.form.get('isConvert') == 'on'
        is_public = request.form.get('isPublic') == 'on'
        chart = ChartInfo.query.get(id).update(title=title,
                                               chart_type=chart_type,
                                               x_axis_name=x_axis_name,
                                               y_axis_name=y_axis_name,
                                               xaxis=xaxis,
                                               yaxis=yaxis,
                                               data_zoom=data_zoom,
                                               visual_map=visual_map,
                                               is_convert=is_convert,
                                               is_public=is_public)
        db.session.commit()
        return baseapi.success("true")
Exemple #25
0
 def create_bar(self, x_list, y_list):
     # bar = Bar()
     # bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
     # bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
     bar = Bar('ETH每日收益', '')
     bar.add('ETH', x_list, y_list, is_more_utils=True)
     snippet = TRANSLATOR.translate(bar.options)
     options = snippet.as_snippet()
     self.view.page().runJavaScript(f'''
             myChart1.clear();
             var option = eval({options});
             myChart1.setOption(option);
         ''')
Exemple #26
0
    def createKlines(self):
        overlap = Overlap()
        for quote in self.quote_data:
            line = Line(quote['title'])
            line.add('open', quote['date'], quote['open'], is_smooth=True)
            line.add('close', quote['date'], quote['close'], is_smooth=True)
            line.add('high', quote['date'], quote['high'], is_smooth=True)
            line.add('low', quote['date'], quote['low'], is_smooth=True)

            overlap.add(line)

        snippet = TRANSLATOR.translate(overlap.options)
        options = snippet.as_snippet()
        return options
def hello():
    _bar = bar_chart()
    javascript_snippet = TRANSLATOR.translate(_bar.options)
    return render_template(
        "pyecharts.html",
        chart_id=_bar.chart_id,
        host=REMOTE_HOST,
        renderer=_bar.renderer,
        my_width=250,
        my_height=600,
        custom_function=javascript_snippet.function_snippet,
        options=javascript_snippet.option_snippet,
        script_list=_bar.get_js_dependencies(),
    )
Exemple #28
0
def hello(chartname):
    sc_map = scatter_map(chartname)
    javascript_snippet = TRANSLATOR.translate(sc_map.options)
    return render_template(
        'charts.html',
        host=LOCAL_HOST,
        chart_id=sc_map.chart_id,
        renderer=sc_map.renderer,
        my_width="100%",
        my_height="450",
        custom_function=javascript_snippet.function_snippet,
        options=javascript_snippet.option_snippet,
        script_list=sc_map.get_js_dependencies(),
        chart_name=chartname,
    )
Exemple #29
0
    def create_pie(self, v=None):
        from pyecharts import options as opts
        from pyecharts.charts import Bar
        print('create_pie')
        bar = Bar("test", 'TITLE_SUBTEXT')
        bar.add('商家1', ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
                ['12', '50', '20', '25', '10'],
                is_more_utils=True)
        bar.add('商家2', ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
                ['12', '50', '20', '25', '10'],
                is_more_utils=True)
        snippet = TRANSLATOR.translate(bar.options)
        options = snippet.as_snippet()

        return options
    def create_sankey(self, v): #绘制桑基图
        sankey = Sankey(self.TITLE_TEXT, self.TITLE_SUBTEXT,width=1200, height=600)
        category1,category2,category3,category4,category5,category6=self.ATTR[0],self.ATTR[1],self.ATTR[2],self.ATTR[3],self.ATTR[4],self.ATTR[5]

        nodes = [
            {'name': 'Java软件开发'}, {'name': '前端技术'}, {'name': '移动端技术'},
            {'name': '自然语言处理'}, {'name': 'Python数据分析'}, {'name': '数据可视化'},
            {'name': '量化交易'},{'name': '算法工程'},{'name': '算法优化'},
            {'name': '机器学习开发'},{'name': '运维工程'},{'name': '云计算开发'},
            {'name': '软件UI设计'},{'name': '计算机视觉'},{'name': '产品经理'},{'name': '深度学习'}
        ]
        links = [
            {'source': 'Java软件开发', 'target': '前端技术', 'value': 5},
            {'source': '前端技术', 'target': '移动端技术', 'value': 12},
            {'source': 'Python数据分析', 'target': '自然语言处理', 'value': 10},
            {'source': 'Python数据分析', 'target': '数据可视化', 'value': 8},
            {'source': '自然语言处理', 'target': '算法工程', 'value': 15},
            {'source': '算法工程', 'target': '算法优化', 'value': 15},
            {'source': '自然语言处理', 'target': '算法优化', 'value': 30},
            {'source': '量化交易', 'target': '算法优化', 'value': 10},
            {'source': '自然语言处理', 'target': '移动端技术', 'value': 14},
            {'source': '机器学习开发', 'target': '自然语言处理', 'value': 14},
            {'source': '机器学习开发', 'target': '算法工程', 'value': 20},
            {'source': '软件UI设计', 'target': '移动端技术', 'value': 15},
            {'source': '深度学习', 'target': '计算机视觉', 'value': 12},
            {'source': '计算机视觉', 'target': '算法优化', 'value': 10},
            {'source': '运维工程', 'target': '云计算开发', 'value': 15},
            {'source': '前端技术', 'target': '云计算开发', 'value': 20},
            {'source': '云计算开发', 'target': '产品经理', 'value': 3},
            {'source': '移动端技术', 'target': '产品经理', 'value': 10},
            {'source': '算法优化', 'target': '产品经理', 'value': 7},
            {'source': '计算机视觉', 'target': '产品经理', 'value': 6},
            {'source': '数据可视化', 'target': '产品经理', 'value': 5},
        ]
        sankey.add(
            "技能树",
            nodes,
            links,
            line_opacity=0.2,
            line_curve=0.5,
            line_color="source",
            is_label_show=True,
            label_pos="right",
        )
        snippet = TRANSLATOR.translate(sankey.options)
        options = snippet.as_snippet()
        return options
Exemple #31
0
def reload_data(addrs, local, dataset, ip_from):
    local_coord = local[0]
    local_city = local[1]

    road = []
    # 实例化世界地图
    world = GeoLines('', **style.init_style)
    try:
        # 添加本机坐标
        world.add_coordinate(local_city, local_coord[0], local_coord[1])
    except:
        # 重复添加可能会出错?
        pass

    if addrs:
        for ips in addrs:
            ips = loads(ips)
            ip = list(ips.keys())[0]
            is_evil = list(ips.values())[0]
            try:
                info = dataset.city(ip)
                ip_city = info.city.name
                ip_country = info.country.name
                # 经纬度
                ip_coord = [info.location.longitude, info.location.latitude]
                if ip_city and ip_country:
                    world.add_coordinate(ip_city, ip_coord[0], ip_coord[1])
                    path = [ip_city, local_city]
                    road.append(path)
                    if ip_country not in ip_from:
                        ip_from[ip_country] = 1
                    else:
                        ip_from[ip_country] += 1
            except:
                pass
    else:
        road = [['Los Angeles', local_city]]

    world.add('', road, **style_geo)
    option = world.get_options()
    # options中存在 Tooltip 对象,无法直接使用 json.dumps 转换,需要理由 pyecharts 的 TRANSLATOR API函数
    option = TRANSLATOR.translate(option)
    option = option.as_snippet()

    return option, ip_from
Exemple #32
0
 def print_echarts_options(self):
     """
     打印输出图形所有配置项
     """
     snippet = TRANSLATOR.translate(self.options)
     print(snippet.as_snippet())