Beispiel #1
0
    def getRadar(self, sheet: xlrd.sheet) -> Radar:
        namelist = sheet.col_values(0, 1)
        maxvaluelist = sheet.col_values(1, 1)
        maxlist = [
            opts.RadarIndicatorItem(name=namelist[i], max_=maxvaluelist[i])
            for i in range(len(namelist))
        ]
        valuelists = dict()
        for i in range(2, sheet.ncols):
            valuelists[sheet.cell(0, i).value] = sheet.col_values(i, 1)
        r = Radar()
        r.add_schema(
            schema=maxlist,
            splitarea_opt=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
            textstyle_opts=opts.TextStyleOpts(color="#fff"),
        )
        #设置颜色的列表
        colorstr = ["#CD0000", "#5CACEE", "#7B68EE", "#FFFF00"]
        colorth = 0
        for name, values in valuelists.items():
            r.add(
                series_name=name,
                data=values,
                linestyle_opts=opts.LineStyleOpts(color=colorstr[colorth]),
            )
            colorth = (colorth + 1) % len(colorstr)  #颜色循环

        r.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        r.set_global_opts(title_opts=opts.TitleOpts(
            title=sheet.name,
            title_textstyle_opts=opts.TextStyleOpts(color="#fff")),
                          legend_opts=opts.LegendOpts())
        return r
Beispiel #2
0
def DrawRadar(city_name):
	schema = [('最高气温', 45), ('气压', 1500), ('湿度', 100), ('最低气温', 45), ('PM2.5', 200)]
	data = qr.get_data(city_name)
	values = [[int(data['Htemperature']), int(data['QY']), int(data['SD'].strip('%')), int(data['Ltemperature']), int(data['pm25'])]]
	radar = Radar()
	radar.config(schema)
	radar.add('%s天气信息' % city_name, values, is_splitline=True, is_axisline_show=True)
	radar.render('weatherRadar.html')
def radar_product_rating_base():
    """
    此函数用于获取产品多维评价的雷达图的参数。

    Returns
    -------
    tl : TYPE-echarts parameters
        return echarts parameters.
    """
    
    # data query
    dataX, products, list_dataY = product_rating_query()
    c_schema = []
    for i in range(len(dataX)):
        c_schema.append({"name":dataX[i],"max":5,"min":0})
        
    # Declare objects, render pictures
    tl = Timeline()
    for i in range(len(products)):
        c = (
            Radar(init_opts=opts.InitOpts(width="1280px", height="720px"))
            .add_schema(schema=c_schema,
                        splitarea_opt=opts.SplitAreaOpts(is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
                        textstyle_opts=opts.TextStyleOpts(color="#fff"),
                        )
            .add(series_name=products[i], data=[list(list_dataY[i])], 
                 linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
                 )
            .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
            .set_global_opts(title_opts=opts.TitleOpts(title="Multi-dimensional analysis of product performance"),
                             legend_opts=opts.LegendOpts(pos_left="80%", pos_top="50%"))
        )
        tl.add(c, "{}".format(products[i]))
    return tl
Beispiel #4
0
def radar_base(data, email_max_number, copy_max_number, copied_max_number, receiver_max_num, mail_server_max_number) -> Radar:
    radar = (
        Radar(init_opts=opts.InitOpts(width="1280px", height="720px"))
        .add_schema(
            schema=[
                opts.RadarIndicatorItem(name="邮件数量", max_=email_max_number),
                opts.RadarIndicatorItem(name="含有抄送的邮件数量", max_=copy_max_number),
                opts.RadarIndicatorItem(name="被抄送的邮件数量", max_=copied_max_number),
                opts.RadarIndicatorItem(name="联系人数量", max_=receiver_max_num),
                opts.RadarIndicatorItem(name="服务器个数", max_=mail_server_max_number),
            ],
            splitarea_opt=opts.SplitAreaOpts(
                is_show=True
            ),
            textstyle_opts=opts.TextStyleOpts(color="#000000"),
        )
    )

    for mailbox in data:
        tot = 0
        for num in data[mailbox][0]:
            tot += num
        if num is not 0:
            radar.add(
                series_name=mailbox,
                data=data[mailbox],
                linestyle_opts=opts.LineStyleOpts(color=utils.randomColor(), width=1),
            )

    radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(
            legend_opts=opts.LegendOpts()
        )
        
    return radar
Beispiel #5
0
def user_ability_radar(v1, v2) -> Radar:
    radar = (Radar(init_opts=opts.InitOpts()).add_schema(
        schema=[
            opts.RadarIndicatorItem(name="字符串", max_=100),
            opts.RadarIndicatorItem(name="线性表", max_=100),
            opts.RadarIndicatorItem(name="数组", max_=100),
            opts.RadarIndicatorItem(name="查找算法", max_=100),
            opts.RadarIndicatorItem(name="排序算法", max_=100),
            opts.RadarIndicatorItem(name="数字操作", max_=100),
            opts.RadarIndicatorItem(name="树结构", max_=100),
            opts.RadarIndicatorItem(name="图结构", max_=100),
        ],
        splitarea_opt=opts.SplitAreaOpts(
            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        textstyle_opts=opts.TextStyleOpts(color="#000"),
    ).add(
        series_name="学生平均得分",
        data=v2,
        linestyle_opts=opts.LineStyleOpts(color="#5CACEE",
                                          width=3,
                                          opacity=0.7),
    ).add(
        series_name="学生能力评估",
        data=v1,
        linestyle_opts=opts.LineStyleOpts(color="#CD0000",
                                          width=3,
                                          opacity=0.7),
    ).set_series_opts(label_opts=opts.LabelOpts(
        is_show=False)).set_global_opts(title_opts=opts.TitleOpts(),
                                        legend_opts=opts.LegendOpts()))
    return radar
Beispiel #6
0
def radar_selected_mode() -> Radar:
    DaLuan = list[1:10]
    print(list[:10])
    random.shuffle(DaLuan)
    print(DaLuan)
    c = (
        Radar()
        .add_schema(textstyle_opts={'color':'#c7a252',"fontSize": 16,},#文字样式的颜色
            schema=[
                opts.RadarIndicatorItem(name=list[0][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[0][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[1][0], max_=max ),
                opts.RadarIndicatorItem(name=DaLuan[2][0], max_=max ),
                opts.RadarIndicatorItem(name=DaLuan[3][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[4][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[5][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[6][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[7][0], max_=max),
                opts.RadarIndicatorItem(name=DaLuan[8][0], max_=max),
            ],
        )
        .add("Top10能力要求", [[max]+[DaLuan[i][1] for i in range(0,9)]],
             areastyle_opts={"color": '#009ad6'},linestyle_opts={"color": '#009ad6'})
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            legend_opts=opts.LegendOpts(selected_mode="single"),
            title_opts=opts.TitleOpts(title="岗位技能雷达图"),
        )
    )
    return c
Beispiel #7
0
def reder_base(v1,v2,v3):
    c=(
        Radar()
        .add_schema(
            schema=[
                opts.RadarIndicatorItem(name='动画',max_=650000),
                opts.RadarIndicatorItem(name='娱乐',max_=650000),
                opts.RadarIndicatorItem(name='影视',max_=650000),
                opts.RadarIndicatorItem(name='时尚',max_=650000),
                opts.RadarIndicatorItem(name='游戏',max_=650000),
                opts.RadarIndicatorItem(name='生活',max_=650000),
                opts.RadarIndicatorItem(name='科技',max_=650000),
                opts.RadarIndicatorItem(name='音乐',max_=650000),
                opts.RadarIndicatorItem(name='鬼畜',max_=650000),
            ]
        )
        #添加指标,设置线条颜色
        .add('投币',v1,color='#49010F')
        .add('点赞',v2,color='#C16200')
        .add('收藏',v3,color='#881600')
        .set_series_opts(
        	#不显示指标数值
            label_opts=opts.LabelOpts(is_show=False),
            # 设置线条格式,宽度为3,样式为虚线
            linestyle_opts=opts.LineStyleOpts(width=3,type_='dotted'),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title='top100各分区三连情况'))
    )
    return c
Beispiel #8
0
def radar(schema, radar_data: list[dict]) -> Radar:
    """
    绘制【不同星级商户在"菜价菜量", "口味", "环境", "服务", "交通"方面综合评估】的雷达图需求

    8.1 设置主题"purple-passion";

    8.2 标题”星级商铺评分“

    8.3 返回c

    :param schema: 雷达图的坐标系配置项

    :param radar_data: 雷达图的数据系列配置项

    :return: 绘制的雷达图对象
    """
    c = (Radar(init_opts=opts.InitOpts(
        theme=ThemeType.PURPLE_PASSION)).set_global_opts(
            title_opts=opts.TitleOpts("星级商铺评分"),
            legend_opts=opts.LegendOpts(
                orient="horizontal", align="left")).add_schema(schema=schema))
    # 添加各种配置数据
    for data_item in radar_data:
        c.add(series_name=data_item["series_name"],
              data=data_item["data"],
              color=data_item["color"],
              label_opts=data_item["label_opts"],
              areastyle_opts=data_item["areastyle_opts"])
    return c
Beispiel #9
0
def radar_base():
    c = (
        Radar().add_schema(schema=[
            opts.RadarIndicatorItem(name='动画', max_=650000),
            opts.RadarIndicatorItem(name='娱乐', max_=650000),
            opts.RadarIndicatorItem(name='影视', max_=650000),
            opts.RadarIndicatorItem(name='时尚', max_=650000),
            opts.RadarIndicatorItem(name='游戏', max_=650000),
            opts.RadarIndicatorItem(name='生活', max_=650000),
            opts.RadarIndicatorItem(name='科技', max_=650000),
            opts.RadarIndicatorItem(name='音乐', max_=650000),
            opts.RadarIndicatorItem(name='鬼畜', max_=650000),
        ])
        #添加指标,设置线条颜色
        .add('投币', [top_100['coin'].tolist()], color='#49010F').add(
            '点赞', [top_100['like'].tolist()], color='#C16200').add(
                '收藏', [top_100['favorite'].tolist()],
                color='#881600').set_series_opts(
                    #不显示指标数值
                    label_opts=opts.LabelOpts(is_show=False),
                    # 设置线条格式,宽度为3,样式为虚线
                    linestyle_opts=opts.LineStyleOpts(width=3, type_='dotted'),
                ).set_global_opts(title_opts=opts.TitleOpts(
                    title='Operations on top100')).dump_options_with_quotes())
    return c
Beispiel #10
0
def radar_simple() -> Radar:
    c = (
        Radar().add_schema(
            # 各项的max_值可以不同
            schema=[
                opts.RadarIndicatorItem(name='计算几何学', max_=100),
                opts.RadarIndicatorItem(name='动态规划', max_=100),
                opts.RadarIndicatorItem(name='图论', max_=100),
                opts.RadarIndicatorItem(name='搜索', max_=100),
                opts.RadarIndicatorItem(name='模拟', max_=100),
                opts.RadarIndicatorItem(name='数论', max_=100),
            ]).add(
                '旺神',
                [[random.randint(10, 101) for _ in range(6)]],
                color='red',
                areastyle_opts=opts.AreaStyleOpts(  #设置填充的属性
                    opacity=0.5, color='red'),
            ).add(
                '蔡队',
                [[random.randint(10, 101) for _ in range(6)]],
                color='blue',
                areastyle_opts=opts.AreaStyleOpts(
                    opacity=0.5,  #透明度
                    color='blue'),
            ).set_series_opts(label_opts=opts.LabelOpts(
                is_show=True)).set_global_opts(title_opts=opts.TitleOpts(
                    title='雷达图示例-ACM集训队队员能力')))
    return c
Beispiel #11
0
def radar_base() -> Radar:
    rl = []
    with open("Ex3.6.3.csv", "r") as f:
        rL = f.read().split("\n")

    data = []
    for i in range(1, len(rL) - 1):
        data.append(rL[i].split(","))

    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="Violent", max_=1000),
        opts.RadarIndicatorItem(name="Property", max_=5000),
        opts.RadarIndicatorItem(name="Murder", max_=10),
        opts.RadarIndicatorItem(name="Rape", max_=100),
        opts.RadarIndicatorItem(name="Robbery", max_=500),
        opts.RadarIndicatorItem(name="Assault", max_=1000),
        opts.RadarIndicatorItem(name="Burglary", max_=1000),
        opts.RadarIndicatorItem(name="Larceny", max_=3000),
        opts.RadarIndicatorItem(name="Auto", max_=1000),
        opts.RadarIndicatorItem(name="Inmates", max_=1000),
    ]).set_series_opts(label_opts=opts.LabelOpts(
        is_show=False)).set_global_opts(
            legend_opts=opts.LegendOpts(selected_mode="single"),
            title_opts=opts.TitleOpts(title="2014年美国各州犯罪率")))
    for i in range(len(data)):
        c.add(data[i][0], [list(map(float, data[i][1:]))])

    return c
Beispiel #12
0
def test_radar_item_base(fake_writer):
    series_names = ["预算分配", "实际开销"]
    series_data = [
        [4300, 10000, 28000, 35000, 50000, 19000],
        [5000, 14000, 28000, 31000, 42000, 21000],
    ]
    radar_item = [
        opts.RadarItem(name=d[0], value=d[1])
        for d in list(zip(series_names, series_data))
    ]

    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="销售", max_=6500),
        opts.RadarIndicatorItem(name="管理", max_=16000),
        opts.RadarIndicatorItem(name="信息技术", max_=30000),
        opts.RadarIndicatorItem(name="客服", max_=38000),
        opts.RadarIndicatorItem(name="研发", max_=52000),
        opts.RadarIndicatorItem(name="市场", max_=25000),
    ]).add("", radar_item).set_series_opts(label_opts=opts.LabelOpts(
        is_show=False)).set_global_opts(title_opts=opts.TitleOpts(
            title="Radar-基本示例")))
    c.render()
    _, content = fake_writer.call_args[0]
    assert_equal(c.theme, "white")
    assert_equal(c.renderer, "canvas")
def drawer2(stage_name, data):
    c_schema = [
        {
            "name": "乐",
            "max": 0.55,
            "min": 0
        },
        {
            "name": "好",
            "max": 0.55,
            "min": 0
        },
        {
            "name": "哀",
            "max": 0.55,
            "min": 0
        },
        {
            "name": '恶',
            "max": 0.55,
            "min": 0
        },
        {
            "name": "惧",
            "max": 0.55,
            "min": 0
        },
    ]
    c = (Radar().set_colors(["#CC3300"]).add_schema(
        schema=c_schema,
        shape="circle",
        center=["50%", "50%"],
        radius="80%",
        angleaxis_opts=opts.AngleAxisOpts(
            min_=0,
            max_=360,
            is_clockwise=False,
            interval=5,
            axistick_opts=opts.AxisTickOpts(is_show=False),
            axislabel_opts=opts.LabelOpts(is_show=False),
            axisline_opts=opts.AxisLineOpts(is_show=False),
            splitline_opts=opts.SplitLineOpts(is_show=False),
        ),
        radiusaxis_opts=opts.RadiusAxisOpts(
            min_=-4,
            max_=4,
            interval=2,
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        ),
        polar_opts=opts.PolarOpts(),
        splitarea_opt=opts.SplitAreaOpts(is_show=False),
        splitline_opt=opts.SplitLineOpts(is_show=False),
    ).add(
        series_name=stage_name,
        data=data,
        areastyle_opts=opts.AreaStyleOpts(opacity=0.1),
        linestyle_opts=opts.LineStyleOpts(width=3),
    ).render("res\\output\\multi-emotion\\image\\" + stage_name + ".html"))
Beispiel #14
0
def radar():
    r = (Radar().add_schema(schema=(
        opts.RadarIndicatorItem(v1[0], max_=v2[0]),
        opts.RadarIndicatorItem(v1[1], max_=v2[1]),
        opts.RadarIndicatorItem(v1[2], max_=v2[2]),
        opts.RadarIndicatorItem(v1[3], max_=v2[3]),
    )).add('物联网可视化', [v2]).set_global_opts(opts.TitleOpts(title='大数据比赛可视化项目')))
    return r
Beispiel #15
0
def draw_centrality():
    degree_centrality = nx.degree_centrality(G)
    closeness_centrality = nx.closeness_centrality(G)
    betweenness_centrality = nx.betweenness_centrality(G)
    degree_centrality_sort = sorted(degree_centrality, key=lambda x: degree_centrality[x], reverse=True)
    closeness_centrality_sort = sorted(closeness_centrality, key=lambda x: closeness_centrality[x], reverse=True)
    betweenness_centrality_sort = sorted(betweenness_centrality, key=lambda x: betweenness_centrality[x], reverse=True)
    top_authors = sorted(
        [(x, degree_centrality[x] + closeness_centrality[x] + betweenness_centrality[x]) for x in set.intersection(
            set(betweenness_centrality_sort[:30]), set(closeness_centrality_sort[:30]),
            set(degree_centrality_sort[:30]))], key=lambda x: x[1], reverse=True)

    table = prettytable.PrettyTable(
        ['Rank', 'Name', 'Degree centrality', 'Closeness centrality', 'Betweenness centrality', 'Sum centrality'])

    [table.add_row(
        [index + 1, value[0], round(degree_centrality[value[0]], 3), round(closeness_centrality[value[0]], 3),
         round(betweenness_centrality[value[0]], 3), round(value[1], 3)]) for index, value in enumerate(top_authors)]

    print(table)

    h_authors = set.intersection(
        set(betweenness_centrality_sort[:15]),
        set(closeness_centrality_sort[:15]),
        set(degree_centrality_sort[:15]))

    data = [[G.nodes[x]["name"], [betweenness_centrality[x], closeness_centrality[x], degree_centrality[x]]] for x in
            h_authors[:10]]

    c = (
        Radar()
            .add_schema(
            schema=[
                opts.RadarIndicatorItem(name="Betweenness centrality [0,0.15]", max_=0.15, min_=0),
                opts.RadarIndicatorItem(name="Closeness centrality [0,0.6]", max_=0.6, min_=0),
                opts.RadarIndicatorItem(name="Degree centrality [0,0.35]", max_=0.35, min_=0),
            ],
            shape="circle",
            center=["50%", "50%"],
            radius="80%",
            splitarea_opt=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
            textstyle_opts=opts.TextStyleOpts(color="#000"),
        ).set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    )

    for x in data:
        color = randomcolor()
        c.add(
            series_name=x[0],
            data=[x[1]],
            areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color=color),
            linestyle_opts=opts.LineStyleOpts(width=1, color=color),
            label_opts=opts.LabelOpts(is_show=False)
        )

    return c
    def tograph(self, arrayVal, name) -> Radar:
        value_bj = [arrayVal]

        c_schema = [
            {
                "name": "speed",
                "max": 100
            },
            {
                "name": "dribbling",
                "max": 100
            },
            {
                "name": "shooting",
                "max": 100
            },
            {
                "name": "passing",
                "max": 100
            },
            {
                "name": "defence",
                "max": 100
            },
            {
                "name": "physical",
                "max": 100
            },
            {
                "name": "gk_diving",
                "max": 100
            },
            {
                "name": "gk_positioning",
                "max": 100
            },
            {
                "name": "gk_reflexes",
                "max": 100
            },
            {
                "name": "gk_gk_handling",
                "max": 100
            },
            {
                "name": "gk_kicking",
                "max": 100
            },
        ]
        c = (Radar().add_schema(schema=c_schema, shape="circle").add(
            name, value_bj, color="#f9713c").set_series_opts(
                label_opts=opts.LabelOpts(is_show=False)).set_global_opts(
                    title_opts=opts.TitleOpts(title="Radar-Player")))
        hname = str(time.time()) + '.html'

        c.render('./front-end/graph/' + hname)
        return hname
def RadarChart(BookNumsOfPubs: list, NamesOfPubs: list, AvgPoints: list, AvgPrice: list):
    '''
    出版物数量前10的出版社的数量和评分\n
    :param BookNumsOfPubs: 详见RankOfPublisher()函数
    :param NamesOfPubs: 同上
    :param AvgPoints: 同上
    :param AvgPrice: 同上
    :return: 画图函数,不知道能返回什么
    '''
    global dir_to_save
    AvgPrice = [[x * 80 for x in AvgPrice]]  # 价格放大到原来的80倍
    AvgPoints = [[math.exp(x) for x in tqdm(AvgPoints)]]  # 平均分取指数,放大差异
    BookNumsOfPubs = [[5 * x for x in BookNumsOfPubs]]  # 书籍数量放大5倍,与放大后的评分在同一数量级,便于可视化
    # 以上数据处理方式没有什么理论依据,仅仅是调整到了一个数量级。有关的统计学知识后续学习
    (
        Radar(init_opts=opts.InitOpts(width="1000px", height="500px", bg_color="#CCCCCC"))
            .add_schema(
            schema=[
                opts.RadarIndicatorItem(name=NamesOfPubs[0], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[1], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[2], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[3], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[4], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[5], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[6], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[7], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[8], max_=5500),
                opts.RadarIndicatorItem(name=NamesOfPubs[9], max_=5500),
            ],
            splitarea_opt=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
            textstyle_opts=opts.TextStyleOpts(color="#228B22"),
        )
            .add(
            series_name="平均分(取指数后)",
            data=AvgPoints,
            linestyle_opts=opts.LineStyleOpts(color="#D9173B"),
        )
            .add(
            series_name="出版物数量(扩大5倍后)",
            data=BookNumsOfPubs,
            linestyle_opts=opts.LineStyleOpts(color="#0000CD"),
        )
            .add(
            series_name="出版物均价(扩大80倍后)",
            data=AvgPrice,
            linestyle_opts=opts.LineStyleOpts(color="#FFD700"),
        )
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
            .set_global_opts(
            title_opts=opts.TitleOpts(title="出版物数量前10的出版社"), legend_opts=opts.LegendOpts()
        )
            .render(dir_to_save + "Top10PubsInBookNums_radar.html")
    )
    print("Successfully drew Top10PubsInBookNums_radar")
Beispiel #18
0
def draw_centrality():
    degree_centrality = nx.degree_centrality(G)
    closeness_centrality = nx.closeness_centrality(G)
    betweenness_centrality = nx.betweenness_centrality(G)
    degree_centrality_sort = sorted(degree_centrality,
                                    key=lambda x: degree_centrality[x],
                                    reverse=True)
    closeness_centrality_sort = sorted(closeness_centrality,
                                       key=lambda x: closeness_centrality[x],
                                       reverse=True)
    betweenness_centrality_sort = sorted(
        betweenness_centrality,
        key=lambda x: betweenness_centrality[x],
        reverse=True)
    h_authors = set.intersection(set(betweenness_centrality_sort[:15]),
                                 set(closeness_centrality_sort[:15]),
                                 set(degree_centrality_sort[:15]))

    data = [[
        G.nodes[x]["name"],
        [
            betweenness_centrality[x], closeness_centrality[x],
            degree_centrality[x]
        ]
    ] for x in h_authors]

    c = (Radar().add_schema(
        schema=[
            opts.RadarIndicatorItem(name="Betweenness centrality [0,1]",
                                    max_=1,
                                    min_=0),
            opts.RadarIndicatorItem(name="Closeness centrality [0,0.6]",
                                    max_=0.6,
                                    min_=0),
            opts.RadarIndicatorItem(name="Degree centrality [0,0.1]",
                                    max_=0.1,
                                    min_=0),
        ],
        shape="circle",
        center=["50%", "50%"],
        radius="80%",
        splitarea_opt=opts.SplitAreaOpts(
            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        textstyle_opts=opts.TextStyleOpts(color="#000"),
    ).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))

    for x in data:
        color = randomcolor()
        c.add(series_name=x[0],
              data=[x[1]],
              areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color=color),
              linestyle_opts=opts.LineStyleOpts(width=1, color=color),
              label_opts=opts.LabelOpts(is_show=False))

    c.render("radar_angle_radius_axis.html")
Beispiel #19
0
def radar_base(v1):
    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="力荐", max_=100),
        opts.RadarIndicatorItem(name="推荐", max_=100),
        opts.RadarIndicatorItem(name="还行", max_=1000),
        opts.RadarIndicatorItem(name="较差", max_=100),
        opts.RadarIndicatorItem(name="很差", max_=100),
    ]).add("评价情感", [v1]).set_series_opts(label_opts=opts.LabelOpts(
        is_show=False)).set_global_opts(title_opts=opts.TitleOpts(
            title="评论情感雷达图")).dump_options_with_quotes())
    return c
Beispiel #20
0
def radar_base() -> Radar:
    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="销售", max_=6500),
        opts.RadarIndicatorItem(name="管理", max_=16000),
        opts.RadarIndicatorItem(name="信息技术", max_=30000),
        opts.RadarIndicatorItem(name="客服", max_=38000),
        opts.RadarIndicatorItem(name="研发", max_=52000),
        opts.RadarIndicatorItem(name="市场", max_=25000),
    ]).add("预算分配", v1).add("实际开销", v2).set_series_opts(
        label_opts=opts.LabelOpts(is_show=False)).set_global_opts(
            title_opts=opts.TitleOpts(title="Radar-基本示例")))
    return c
Beispiel #21
0
def draw_radar_for_observation_result() -> Radar:
    value = [[43, 58, 78, 65, 86, 63]]
    min_val = 0
    max_val = 100

    # 用于调整雷达各维度的范围大小
    c_schema = [{"name": "交往能力", "max": max_val, "min": min_val, },
                {"name": "感知能力", "max": max_val, "min": min_val, "color": "#ff0000"},
                {"name": "运动能力", "max": max_val, "min": min_val, "color": "#000000"},
                {"name": "注意力", "max": max_val, "min": min_val, "color": "#00ffff"},
                {"name": "语言能力", "max": max_val, "min": min_val, "color": "#ff00ff"},
                {"name": "自我照顾能力", "max": max_val, "min": min_val, "color": "#ff00ff"}
                ]

    # 画图
    radar = Radar(init_opts=opts.InitOpts(width="750px", height="500px"))
    # radar = Radar()
    radar.add_schema(c_schema, textstyle_opts=opts.TextStyleOpts(color="#3344ff"))
    radar.add(None, value, color="#f9713c",
              symbol='circle', label_opts=opts.LabelOpts(is_show=True),
              areastyle_opts=opts.AreaStyleOpts(opacity=0.5, color="#f9713c"))
    # radar.set_global_opts(title_opts=opts.TitleOpts(title="Radar-基本示例"))

    # radar.render("observation_result.html")
    return radar
Beispiel #22
0
def radar_base(schema, value, company_name) -> Radar:
    c = (
        Radar()
            .add_schema(
            schema=schema,
            shape='circle',
            textstyle_opts=opts.TextStyleOpts(font_size=20),
        )
            .add(company_name, value, areastyle_opts=opts.AreaStyleOpts(color='red', opacity=0.5))
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
            .set_global_opts(title_opts=opts.TitleOpts(title="雷达预警图"))
    )
    return c
def plot_radar(series_radiant, series_dire):
    c_schema = [{
        "name": "控制",
        "max": 15,
        "min": 0
    }, {
        "name": "核心",
        "max": 15,
        "min": 0
    }, {
        "name": "辅助",
        "max": 15,
        "min": 0
    }, {
        "name": "逃生",
        "max": 15,
        "min": 0
    }, {
        "name": "爆发",
        "max": 15,
        "min": 0
    }, {
        "name": "先手",
        "max": 15,
        "min": 0
    }, {
        "name": "耐久",
        "max": 15,
        "min": 0
    }, {
        "name": "推进",
        "max": 15,
        "min": 0
    }]
    radar = Radar()
    radar.add_schema(schema=c_schema)
    radar.add("radiant", series_radiant, color="#f9713c")
    radar.add("dire", series_dire, color="#b3e4a1")
    radar.render("Rader.html")
Beispiel #24
0
def test_radar_base():
    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="销售", max_=6500),
        opts.RadarIndicatorItem(name="管理", max_=16000),
        opts.RadarIndicatorItem(name="信息技术", max_=30000),
        opts.RadarIndicatorItem(name="客服", max_=38000),
        opts.RadarIndicatorItem(name="研发", max_=52000),
        opts.RadarIndicatorItem(name="市场", max_=25000),
    ]).add("预算分配", v1).add(
        "实际开销", v2).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))
    eq_(c.theme, "white")
    eq_(c.renderer, "canvas")
    c.render()
Beispiel #25
0
def radar_plot(v1, v2, v3, i):
    m = max([max(v1[0]), max(v2[0]), max(v3[0])])
    c = (Radar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT,width="640px", height="360px",bg_color="#CCCCCC"))
        .add_schema(

            shape='polygon',
            schema=[
                opts.RadarIndicatorItem(name="焦虑", max_=m),
                opts.RadarIndicatorItem(name="悲伤", max_=m),
                opts.RadarIndicatorItem(name="愤怒", max_=m),
                opts.RadarIndicatorItem(name="喜悦", max_=m),
                opts.RadarIndicatorItem(name="感激", max_=m),
                opts.RadarIndicatorItem(name="信任", max_=m),
            ],

            splitarea_opt=opts.SplitAreaOpts(
            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
        ),
        textstyle_opts=opts.TextStyleOpts(color="#fff"),
    )
        .add(
            symbol = None,
            series_name="官方媒体",
            data=v1,
            linestyle_opts=opts.LineStyleOpts(width=1),
            areastyle_opts=opts.AreaStyleOpts(opacity=0.1),
        )
    # .add("北京", value_bj, color=)
    # .add("上海", value_sh, color="#b3e4a1")
    # .set_series_opts(label_opts=opts.LabelOpts(is_show=False))

        .add(
            symbol=None,
            series_name="大众心理",
            data=v2,
            linestyle_opts=opts.LineStyleOpts(color='#61a0a8'),
            areastyle_opts=opts.AreaStyleOpts(opacity=0.1,color='#61a0a8'),)

        ).add(
            series_name="自媒体",
            symbol=None,
            data=v3,
            areastyle_opts=opts.AreaStyleOpts(opacity=0.1,color="#fab27b"),
            linestyle_opts=opts.LineStyleOpts(color="#fab27b"),
        )\
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\
        .set_global_opts(
            title_opts=opts.TitleOpts(title="第"+str(i+1)+"阶段心态分析"), legend_opts=opts.LegendOpts()
        )

    return c
Beispiel #26
0
def test_radar_base(fake_writer):
    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="销售", max_=6500),
        opts.RadarIndicatorItem(name="管理", max_=16000),
        opts.RadarIndicatorItem(name="信息技术", max_=30000),
        opts.RadarIndicatorItem(name="客服", max_=38000),
        opts.RadarIndicatorItem(name="研发", max_=52000),
        opts.RadarIndicatorItem(name="市场", max_=25000),
    ]).add("预算分配", v1).add(
        "实际开销", v2).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))
    c.render()
    _, content = fake_writer.call_args[0]
    assert_equal(c.theme, "white")
    assert_equal(c.renderer, "canvas")
Beispiel #27
0
def radar_selected_mode() -> Radar:
    c = (Radar().add_schema(schema=[
        opts.RadarIndicatorItem(name="销售", max_=6500),
        opts.RadarIndicatorItem(name="管理", max_=16000),
        opts.RadarIndicatorItem(name="信息技术", max_=30000),
        opts.RadarIndicatorItem(name="客服", max_=38000),
        opts.RadarIndicatorItem(name="研发", max_=52000),
        opts.RadarIndicatorItem(name="市场", max_=25000),
    ]).add("预算分配", v1).add("实际开销", v2).set_series_opts(
        label_opts=opts.LabelOpts(is_show=False)).set_global_opts(
            legend_opts=opts.LegendOpts(selected_mode="single"),
            title_opts=opts.TitleOpts(title="Radar-单例模式"),
        ))
    return c
    def tographt(self, arrayVal, name) -> Radar:
        value_bj = [arrayVal]

        c_schema = [
            {
                "name": "buildUpPlaySpeed",
                "max": 100
            },
            {
                "name": "buildUpPlayDribbling",
                "max": 100
            },
            {
                "name": "buildUpPlayPassing",
                "max": 100
            },
            {
                "name": "chanceCreationCrossing",
                "max": 100
            },
            {
                "name": "chanceCreationPassing",
                "max": 100
            },
            {
                "name": "chanceCreationShooting",
                "max": 100
            },
            {
                "name": "defenceAggression",
                "max": 100
            },
            {
                "name": "defencePressure",
                "max": 100
            },
            {
                "name": "defenceTeamWidth",
                "max": 100
            },
        ]
        c = (Radar().add_schema(schema=c_schema, shape="circle").add(
            name, value_bj, color="#f9713c").set_series_opts(
                label_opts=opts.LabelOpts(is_show=False)).set_global_opts(
                    title_opts=opts.TitleOpts(title="Radar-Player")))
        hname = str(time.time()) + '.html'

        c.render('./front-end/graph/' + hname)
        return hname
Beispiel #29
0
def radar_demo():
    radar = Radar()
    # data1 = [[12, 0, 2, 18, 0, 1]]
    radar_data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]#降水量
    # schema = [
    #     ("执行成功", 20), ("执行失败", 5), ("执行异常", 5),
    #     ("回滚成功", 20), ("回滚失败", 5), ("执行中断", 5)
    # ]
    schema = [
        ("Jan", 5), ("Feb", 10), ("Mar", 10),
        ("Apr", 50), ("May", 50), ("Jun", 200),
        ("Jul", 200), ("Aug", 200), ("Sep", 50),
        ("Oct", 50), ("Nov", 10), ("Dec", 5)
    ]
    radar.add_schema(schema)
    radar.add("执行状态", radar_data1)
    radar.render("/aa.html")
Beispiel #30
0
def student_grade_radar(student_grade: StudentGrade) -> Radar:
    """
    生成该考生本次考试的排名雷达图。
    :param student_grade: 本次考试成绩StudentGrade对象
    :return: radar: Radar图表
    """
    subjects = Subject.subjects_by_grade(student_grade)
    data = {'student_ranking': [], 'average_ranking': [], 'high_ranking': []}
    for subject in subjects:
        data['student_ranking'].append(
            GradeRanking.grade2ranking(
                student_grade.test,
                student_grade.grade_dict()[subject], subject, student_grade.subject))
        data['average_ranking'].append(TestAverageGrade.query.filter_by(
            subject='理科', test_time=student_grade.test_time).first()
                                       .__dict__[subject + '_ranking'])
        data['high_ranking'].append(TestHighGrade.query.filter_by(
            subject='理科', test_time=student_grade.test_time).first()
                                    .__dict__[subject + '_ranking'])
    radar = (
        Radar(init_opts=opts.InitOpts(bg_color='#fef8ef'))
            .add_schema(
            schema=[
                opts.RadarIndicatorItem(
                    name=subject,
                    color='#778899',
                    max_=max(
                        data['student_ranking'] + data['average_ranking'] + data['high_ranking']) + 50
                ) for subject in subjects
            ],
            textstyle_opts=opts.TextStyleOpts(font_size=18)
        )
            .set_global_opts(title_opts=opts.TitleOpts('名次雷达图'), )
            .set_series_opts()
            .add('本次排名', [data['student_ranking']], color='#d7ab82',
                 linestyle_opts=opts.LineStyleOpts(width=2.5),
                 label_opts=opts.LabelOpts(is_show=True, font_size=14),
                 tooltip_opts=opts.TooltipOpts(is_show=False))
            .add('平均排名', [data['average_ranking']], color='#919e8b',
                 linestyle_opts=opts.LineStyleOpts(width=2.5),
                 label_opts=opts.LabelOpts(is_show=True, font_size=14),
                 tooltip_opts=opts.TooltipOpts(is_show=False))
            .add('高分线排名', [data['high_ranking']], color='#d87c7c',
                 linestyle_opts=opts.LineStyleOpts(width=2.5),
                 label_opts=opts.LabelOpts(is_show=True, font_size=14),
                 tooltip_opts=opts.TooltipOpts(is_show=False))
    )
    return radar