# coding=utf-8 from example.commons import Collector from pyecharts import options as opts from pyecharts.charts import Page, Radar C = Collector() v1 = [[4300, 10000, 28000, 35000, 50000, 19000]] v2 = [[5000, 14000, 28000, 31000, 42000, 21000]] @C.funcs def radar_base() -> Radar: c = ( Radar() .add_schema( schema=[ opts.RadarIndicatorOpts(name="销售", max_=6500), opts.RadarIndicatorOpts(name="管理", max_=16000), opts.RadarIndicatorOpts(name="信息技术", max_=30000), opts.RadarIndicatorOpts(name="客服", max_=38000), opts.RadarIndicatorOpts(name="研发", max_=52000), opts.RadarIndicatorOpts(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 @C.funcs def radar_selected_mode() -> Radar: c = ( Radar() .add_schema( schema=[ opts.RadarIndicatorOpts(name="销售", max_=6500), opts.RadarIndicatorOpts(name="管理", max_=16000), opts.RadarIndicatorOpts(name="信息技术", max_=30000), opts.RadarIndicatorOpts(name="客服", max_=38000), opts.RadarIndicatorOpts(name="研发", max_=52000), opts.RadarIndicatorOpts(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 @C.funcs def radar_air_quality() -> Radar: value_bj = [ [55, 9, 56, 0.46, 18, 6, 1], [25, 11, 21, 0.65, 34, 9, 2], [56, 7, 63, 0.3, 14, 5, 3], [33, 7, 29, 0.33, 16, 6, 4], [42, 24, 44, 0.76, 40, 16, 5], [82, 58, 90, 1.77, 68, 33, 6], [74, 49, 77, 1.46, 48, 27, 7], [78, 55, 80, 1.29, 59, 29, 8], [267, 216, 280, 4.8, 108, 64, 9], [185, 127, 216, 2.52, 61, 27, 10], [39, 19, 38, 0.57, 31, 15, 11], [41, 11, 40, 0.43, 21, 7, 12], ] value_sh = [ [91, 45, 125, 0.82, 34, 23, 1], [65, 27, 78, 0.86, 45, 29, 2], [83, 60, 84, 1.09, 73, 27, 3], [109, 81, 121, 1.28, 68, 51, 4], [106, 77, 114, 1.07, 55, 51, 5], [109, 81, 121, 1.28, 68, 51, 6], [106, 77, 114, 1.07, 55, 51, 7], [89, 65, 78, 0.86, 51, 26, 8], [53, 33, 47, 0.64, 50, 17, 9], [80, 55, 80, 1.01, 75, 24, 10], [117, 81, 124, 1.03, 45, 24, 11], [99, 71, 142, 1.1, 62, 42, 12], ] c_schema = [ {"name": "AQI", "max": 300, "min": 5}, {"name": "PM2.5", "max": 250, "min": 20}, {"name": "PM10", "max": 300, "min": 5}, {"name": "CO", "max": 5}, {"name": "NO2", "max": 200}, {"name": "SO2", "max": 100}, ] c = ( Radar() .add_schema(schema=c_schema, shape="circle") .add("北京", value_bj, color="#f9713c") .add("上海", value_sh, color="#b3e4a1") .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="Radar-空气质量")) ) return c Page().add(*[fn() for fn, _ in C.charts]).render()