Esempio n. 1
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
Esempio n. 2
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
Esempio n. 3
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))
Esempio n. 4
0
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))
Esempio n. 5
0
        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')
Esempio n. 6
0
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")