Beispiel #1
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 #2
0
def year_store_order_base():
    # 不同门店的年营业额数据查询
    dataX, dataY1, dataY2 = year_store_query()
    # 对象声明
    radar = Radar(init_opts=opts.InitOpts(
        width="1280px", height="720px", bg_color="#CCCCCC"))
    radar.add_schema(
        schema=[
            opts.RadarIndicatorItem(name="门店订单金额", max_=34000),
            opts.RadarIndicatorItem(name="门店顾客数", max_=10000),
            opts.RadarIndicatorItem(name="门店商品类型", max_=10000),
            opts.RadarIndicatorItem(name="门店订单量", max_=10000)
        ],
        splitarea_opt=opts.SplitAreaOpts(
            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        textstyle_opts=opts.TextStyleOpts(color="#fff"),
    )
    radar.add(
        series_name="Store 1",
        data=[list(dataY1)],
        linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
    )
    radar.add(
        series_name="Store 2",
        data=[list(dataY2)],
        linestyle_opts=opts.LineStyleOpts(color="#5CACEE"),
    )
    radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    radar.set_global_opts(title_opts=opts.TitleOpts(title="2005年门店竞争优势多维分析"),
                          legend_opts=opts.LegendOpts())
    return radar
Beispiel #3
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 #4
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 #5
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 #6
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 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 #8
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 #9
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 #10
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 #11
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 #12
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 #13
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
def drawer():
    v1 = [[0.3176, 0.3104, 0.0356, 0.0441, 0.2910]]
    v2 = [[0.2953, 0.2881, 0.0552, 0.0422, 0.3188]]
    v3 = [[0.2793, 0.3582, 0.0546, 0.0556, 0.2518]]
    v4 = [[0.2767, 0.3668, 0.0521, 0.0670, 0.2370]]

    (Radar(init_opts=opts.InitOpts(
        width="720px", height="480px", bg_color="#ffffff")).add_schema(
            schema=[
                opts.RadarIndicatorItem(name="乐", max_=0.4),
                opts.RadarIndicatorItem(name="好", max_=0.4),
                opts.RadarIndicatorItem(name="哀", max_=0.4),
                opts.RadarIndicatorItem(name="恶", max_=0.4),
                opts.RadarIndicatorItem(name="惧", max_=0.4),
            ],
            splitarea_opt=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
            textstyle_opts=opts.TextStyleOpts(color="#000"),
        ).add(
            series_name="阶段一(红色)",
            data=v1,
            linestyle_opts=opts.LineStyleOpts(color="#CD0000", width=3),
        ).add(
            series_name="阶段二(蓝色)",
            data=v2,
            linestyle_opts=opts.LineStyleOpts(color="#5CACEE", width=3),
        ).add(
            series_name="阶段三(绿色)",
            data=v3,
            linestyle_opts=opts.LineStyleOpts(color="green",
                                              width=3,
                                              opacity=0.3,
                                              type_='dashed'),
        ).add(
            series_name="阶段四(黄色)",
            data=v4,
            linestyle_opts=opts.LineStyleOpts(color="yellow",
                                              width=3,
                                              opacity=0.8),
        ).set_series_opts(label_opts=opts.LabelOpts(
            is_show=False)).set_global_opts(
                title_opts=opts.TitleOpts(title="多维情感分析"),
                legend_opts=opts.LegendOpts()).render(
                    "res\\output\\multi-emotion\\image\\多维雷达图.html"))
Beispiel #15
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 #16
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")
Beispiel #17
0
def radar_(x):
    # 基础风险,药物滥用主观态度,神经行为学,社会遗传学,药物滥用相关复发病和健康量表
    # 基础风险、主观风险、神经行为风险、社会遗传风险、复发病风险
    c = (
        Radar()
            .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),
            ]
        )
            .add("风险", x)
            .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='平均风险:'+str(round(np.mean(x), 2))),
        )
            # .render("radar_selected_mode.html")
    )
    return c.render_embed()
Beispiel #18
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
Beispiel #19
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 #20
0
def create_radarmap(labels):
    values = [[]]
    inds = []
    d = [
        '交通是否便利', '距离商圈远近', '是否容易寻找', '排队等候时间', '服务人员态度', '是否容易停车', '点菜/上菜速度',
        '价格水平', '性价比', '折扣力度', '装修情况', '嘈杂情况', '就餐空间', '卫生情况', '分量', '口感',
        '外观', '推荐程度', '本次消费感受', '再次消费的意愿'
    ]

    for i in range(len(labels)):
        if labels[i] > 0:
            values[0].append(int(labels[i]) - 1)
            inds.append(d[i])

    radar = (Radar().add_schema(
        schema=[opts.RadarIndicatorItem(name=ind, max_=2)
                for ind in inds]).add('分类指标', values))
    make_snapshot(snapshot, radar.render(), "static/images/radar.png")
Beispiel #21
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 #22
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 #23
0
def drawRadar(arr, value, valuemax, name):
    radar = Radar(init_opts=opts.InitOpts(
        width="1280px", height="720px", bg_color="#CCCCCC"))
    v_max = [list(z) for z in zip(arr, valuemax)]
    radar.add_schema(
        schema=[opts.RadarIndicatorItem(name=k, max_=v) for k, v in v_max],
        splitarea_opt=opts.SplitAreaOpts(
            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
        textstyle_opts=opts.TextStyleOpts(color="#fff"),
    )
    radar.add(
        series_name=name,
        data=value,
        linestyle_opts=opts.LineStyleOpts(color="#CD0000"),
    )
    radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    radar.set_global_opts(title_opts=opts.TitleOpts(title=name),
                          legend_opts=opts.LegendOpts())
    radar.render("{0}.html".format(name))
Beispiel #24
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
Beispiel #25
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 #26
0
def radar(request):
    v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
    v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
    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 HttpResponse(c.render_embed())
Beispiel #27
0
    def radar_picture(self, seriesname: list, values: list, schemanames):
        #
        # maxvalue = 0
        # for value in value1+value2:
        #     if value>maxvalue:
        #         maxvalue=value

        '''
        v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
        v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
        '''

        schema = []
        print("schenames:", schemanames)
        for index, name in enumerate(schemanames):

            maxvalue = -1
            all = []
            # 第一个循环遍历所有series
            for i in range(0, len(seriesname)):

                if values[i][index] > maxvalue:
                    maxvalue = values[i][index]
                all.append(values[i][index])
            schema.append(opts.RadarIndicatorItem(name=name, max_=maxvalue))
            print(all)
        r = (Radar(init_opts=self.init_opts)
             .add_schema(
            schema=schema
        )
             .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
             .set_global_opts(title_opts=opts.TitleOpts(title=self.title, subtitle=self.subtitle),
                              # 添加logo
                              graphic_opts=self.logo
                              ))
        for name, value in zip(seriesname, values):
            r.add(name, [value])

        return r
Beispiel #28
0
def test_radar_options(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),
        ],
        radiusaxis_opts=opts.RadiusAxisOpts(),
        angleaxis_opts=opts.AngleAxisOpts(),
        polar_opts=opts.PolarOpts(),
    ).add("预算分配", v1).add(
        "实际开销", v2).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))
    c.render()
    _, content = fake_writer.call_args[0]
    assert_in("radiusAxis", content)
    assert_in("angleAxis", content)
    assert_in("polar", content)
Beispiel #29
0
def radar_base(data) -> Radar:
    c = (
        Radar(opts.InitOpts(width = "1200px", height = "800px"))
        .add_schema (
            schema = [
                opts.RadarIndicatorItem(name="Murder", max_ = 30),
                opts.RadarIndicatorItem(name="Forcible rape", max_= 50),
                opts.RadarIndicatorItem(name="Robbery", max_= 300),
                opts.RadarIndicatorItem(name="Aggravated assault", max_= 5000),
                opts.RadarIndicatorItem(name="Burglary", max_= 1000),
                opts.RadarIndicatorItem(name="Larceny thief", max_= 3000),
                opts.RadarIndicatorItem(name="Motor Vehicle theft", max_= 1000),
            ]
        )
        .set_series_opts(label_opts = opts.LabelOpts(is_show = False))
        .set_global_opts (
            title_opts = opts.TitleOpts(title = "美国各州犯罪率"),
            legend_opts = opts.LegendOpts(type_ = 'scroll', selected_mode = 'single', pos_top = "5%"),
            toolbox_opts = opts.ToolboxOpts()
            )
    )
    for i in range(len(data)):
        c.add(data[i][0], [list(map(float, data[i][1:]))])
    return c
Beispiel #30
0
    def drawRadar(self):
        df = pd.read_csv('energySpider/homec(1).csv')
        df_luzi1 = df.loc[0, "炉子 1 [kW]"]
        df_luzi2 = df.loc[0, "炉子 2 [kW]"]
        df_jiatingbangongshi = df.loc[0, "家庭办公室 [kW]"]
        df_bingxiang = df.loc[0, "冰箱 [kW]"]
        df_jiujiao = df.loc[0, "酒窖 [kW]"]
        df_chekumen = df.loc[0, "车库门 [kW]"]
        v1 = [[
            df_luzi1, df_luzi2, df_jiujiao, df_bingxiang, df_jiatingbangongshi,
            df_chekumen
        ]]
        v2 = [[8.1, 120000, 16000, 7000, 15000, 7000]]

        radar = (
            Radar()
            # 设置边属性
            .add_schema(schema=[
                opts.RadarIndicatorItem(name='炉子 1', max_=0.45),
                opts.RadarIndicatorItem(name='炉子 2', max_=0.45),
                opts.RadarIndicatorItem(name='酒窖', max_=0.45),
                opts.RadarIndicatorItem(name='冰箱', max_=0.45),
                opts.RadarIndicatorItem(name='家庭办公室', max_=0.45),
                opts.RadarIndicatorItem(name='车库门', max_=0.45),
            ]).add(
                '能耗',
                v1,
                color='green',
                # 通过颜色属性  将其填充
                areastyle_opts=opts.AreaStyleOpts(
                    opacity=0.5,  # 透明度设置
                    color='green'),
            ).set_series_opts(label_opts=opts.LabelOpts(is_show=False))
            # 全局的属性设置 不要一个一个的写出
            .set_global_opts(title_opts=opts.TitleOpts(title='家电能耗对比')))
        return radar