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
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
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
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
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
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")
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
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")
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
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
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
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"))
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
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 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()
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
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
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")
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()
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
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))
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 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")
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())
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
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)
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
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