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 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 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 DrawRadar(title, data, savepath): print('正在分析评分构成...') radar = Radar() radar.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) radar.set_global_opts( title_opts=opts.TitleOpts(title="Radar-评分分布统计雷达图", pos_left='center'), legend_opts=opts.LegendOpts(orient="vertical", pos_top="middle", pos_left="2%"), ) values = [[data[i][1] for i in range(len(data))]] # 把整个列表当做一个要画的东西 attrs = [data[i][0] for i in range(len(data))] # 改名字 attrs = list(map(int, attrs)) attrs = [str(i) + '星' for i in attrs] num = len(attrs) # 雷达图有几项 schema = [{"name": attrs[i], "max": 230} for i in (range(num))] radar.add_schema(schema=schema) radar.add('豆瓣评分构成', values) radar.render(os.path.join(savepath, '%s.html' % title))
connection.close() # 执行主函数 if __name__ == '__main__': print(store_query()) data1, data2, data3 = store_query() radar = Radar(init_opts=opts.InitOpts(theme=ThemeType.DARK,width="1280px", height="720px")) radar.add_schema(schema=[ opts.RadarIndicatorItem(name="门店订单金额", max_=50000), 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="1号门店", data=[list(data1)], linestyle_opts=opts.LineStyleOpts(color="#CD0000") ) radar.add(series_name="2号门店", data=[list(data2)], 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="门店竞争优势多维分析"), legend_opts=opts.LegendOpts() ) radar.render('radar.html')
def Cartography(): #创建地图 map = Map( init_opts=opts.InitOpts(width="1900px", height="900px", bg_color="#d0effa", page_title="全球新冠疫情_1")) map.add("确诊人数",[list(z) for z in zip(names_new, confirm)],is_map_symbol_show=False, maptype="world",label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color="rgb(98,121,146)"))#地图区域颜色 map.set_global_opts(title_opts = opts.TitleOpts(title='全球新冠疫情确诊人数'),legend_opts=opts.LegendOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(max_=2000000, is_piecewise=True, pieces=[ {"max": 3000000,"min": 500001,"label":">500000","color":"#460303"}, {"max": 500000, "min": 100001, "label": "100001-500000", "color": "#8A0808"}, {"max": 100000, "min": 10001, "label": "10001-100000", "color": "#B40404"}, {"max": 10000, "min": 1001, "label": "1001-10000", "color": "#DF0101"}, {"max": 1000, "min": 101, "label": "101-1000", "color": "#F78181"}, {"max": 100, "min": 1, "label": "1-100", "color": "#F5A9A9"}, {"max": 0, "min": 0, "label": "0", "color": "#fababa"}, ]) ) map.render('Global_new_crown_epidemic_map.html') #创建饼图 pie = Pie(init_opts=opts.InitOpts(width='1900px', height='900px',page_title="全球新冠疫情_2",bg_color="#fee4e7")) # 添加数据 pie.add("", [list(z) for z in zip(country_list, dead_list)], radius=['20%', '100%'],#设置内径外径 center=['60%', '65%'], rosetype='area')#圆心角相同,通过半径展现数据大小#rosetype='radius'圆心角展现数据百分比,半径展现数据大小 # 设置全局配置 pie.set_global_opts(title_opts=opts.TitleOpts(title='全球新冠疫情',subtitle='死亡人数超过\n5000的国家\n (除中国)', title_textstyle_opts=opts.TextStyleOpts(font_size=15,color= '#f40909'), subtitle_textstyle_opts= opts.TextStyleOpts(font_size=15,color= '#8a0b0b'), pos_right= 'center',pos_left= '57%',pos_top= '60%',pos_bottom='center'), legend_opts=opts.LegendOpts(is_show=False)) # 设置系列配置和颜色 pie.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='inside', font_size=13, formatter='{b}:{c}', font_style='italic', font_family='Microsoft YaHei')) pie.set_colors(color_matching) pie.render('Global_new_crown_epidemic_Rose.html') #创建雷达图 radar = Radar(init_opts=opts.InitOpts(width='1900px',height='900px',page_title="全球新冠疫情_3",bg_color="#d1eff3")) #由于雷达图传入的数据得为多维数据,所以这里需要做一下处理 radar_data1 = [list(dead_list)] radar_data2 = [list(heal_list)] radar.add_schema( schema=[ opts.RadarIndicatorItem(name='巴西', max_=8000), opts.RadarIndicatorItem(name='荷兰', max_=8000), opts.RadarIndicatorItem(name='伊朗', max_=20000), opts.RadarIndicatorItem(name='德国', max_=40000), opts.RadarIndicatorItem(name='比利时', max_=70000), opts.RadarIndicatorItem(name='英国', max_=80000), opts.RadarIndicatorItem(name='法国 ', max_=110000), opts.RadarIndicatorItem(name='西班牙', max_=150000), opts.RadarIndicatorItem(name='意大利', max_=170000), opts.RadarIndicatorItem(name='美国', max_=220000), ] ) radar.add("死亡人数",radar_data1,color='blue',areastyle_opts = opts.AreaStyleOpts(opacity = 0.2,color='blue')) radar.add("治愈人数",radar_data2,color='red',areastyle_opts=opts.AreaStyleOpts(opacity=0.3,color='red')) radar.set_series_opts(label_opts=opts.LabelOpts(is_show=True)) radar.set_global_opts(title_opts=opts.TitleOpts(title="死亡人数与治愈人数对比")) radar.render("Death_Versus_Heal.html")