AI 自动生成动态多维雷达图(Radar Chart):用户综合能力画像与品类竞争力评估
AI 自动生成动态多维雷达图Radar Chart用户综合能力画像与品类竞争力评估在企业级用户 360 度全景画像Customer 360 Profile、员工综合绩效多维考核、以及品牌与竞品多维度竞争力对标分析中分析师需要同时评估一个实体在5 到 8 个相互独立的离散维度上的综合表现维度 1【客单价贡献 (ATV)】维度 2【活跃度与复购频次 (Frequency)】维度 3【品类广度与跨类目渗透 (Category Breadth)】维度 4【营销活动与优惠敏感度 (Price Sensitivity)】维度 5【售后履约与信用健康度 (Credit Score)】如果使用传统的柱状图或折线图柱状图只能展示并排的离散高低读者很难一眼建立“该实体是否属于‘无短板全能六边形战士’、还是存在严重单点短板的‘偏科生’”的全局几何空间感知。极坐标多维雷达图Radar Chart / 蜘蛛网图 Spider Chart是呈现多维能力对标的经典图表它将多个维度均匀分布在以原点为中心的放射状射线轴上Radial Axes将实体在各维度的得分连成一个闭合多边形Polygon闭合面积代表综合综合实力多边形凸起代表优势强项凹陷代表薄弱短板。今天我们系统拆解如何利用Plotly 的go.Scatterpolar引擎打造工业级支持多实体叠加对比、半透明色彩融合的交互式多维雷达看板。多维雷达图Radar Chart的极坐标几何模型---------------------------------------------------------------------------------------------------- | 【 用户 360 画像六维雷达对标图 】 | ---------------------------------------------------------------------------------------------------- | [ 轴 1: 客单价贡献 (ATV) ] | | ▲ | | │ | | . - ~ ~ - . │ | | . \ / . │ | | / \ / \ │ | | [ 轴 6: 社交裂变 ] \ / [ 轴 2: 复购频次 ] | | ◄─────────────────\─/─────────────────► | | X │ | | / \ │ | | / \ │ | | . . │ | | . - ~ ~ - . │ | | ▼ | | [ 轴 4: 售后信用得分 ] | ----------------------------------------------------------------------------------------------------核心视觉语法 1. 蓝线闭合多边形: 【高净值黑金会员】 (客单价与信用度极高闭合面积大属于六边形战士) 2. 橙线闭合多边形: 【价格敏感型羊毛党】 (仅在优惠敏感度单点凸出其余维度严重内缩)生产级 Python 实战代码构建多实体叠加对比雷达图看板import plotly.graph_objects as go import pandas as pd def generate_multi_entity_radar_dashboard(output_html: str): # 1. 声明六维评价指标名称 (首尾必须闭合) dimensions [ 1. 客单价贡献 (ATV), 2. 月均复购频次, 3. 跨品类渗透度, 4. 营销响应敏感度, 5. 履约与信用评级, 6. 社交裂变传播力, 1. 客单价贡献 (ATV) # 核心尾部重复第一个维度确保多边形首尾无缝闭合 ] # 2. 声明两大典型客群的归一化评分 (0 ~ 100 分标准刻度) # 客群 A: 高净值黑金会员画像 scores_vip [95, 88, 82, 35, 96, 75, 95] # 客群 B: 年轻羊毛促销型客群画像 scores_promo [30, 65, 40, 95, 70, 88, 30] # 3. 构建 Plotly Scatterpolar 极坐标图形对象 fig go.Figure() # 绘制客群 A: 高净值会员 (深海蓝 半透明填充) fig.add_trace(go.Scatterpolar( rscores_vip, thetadimensions, filltoself, fillcolorrgba(56, 189, 248, 0.35), name 高净值黑金核心客群, linedict(color#38bdf8, width2.5), markerdict(size6, color#38bdf8) )) # 绘制客群 B: 促销敏感型客群 (琥珀金 半透明填充) fig.add_trace(go.Scatterpolar( rscores_promo, thetadimensions, filltoself, fillcolorrgba(245, 158, 11, 0.35), name⚡ 价格敏感促销客群, linedict(color#f59e0b, width2.5), markerdict(size6, color#f59e0b) )) # 4. 界面排版与极坐标轴网格调优 fig.update_layout( titleb2026 年 Q3 全域用户细分客群 360 度综合价值画像雷达对比大盘 (Radar Chart)/b, title_font_size18, title_x0.5, templateplotly_dark, paper_bgcolor#0f172a, height650, margindict(l60, r60, t60, b40), legenddict( orientationh, yanchorbottom, y-0.1, xanchorcenter, x0.5 ), polardict( bgcolor#1e293b, radialaxisdict( visibleTrue, range[0, 100], tickvals[20, 40, 60, 80, 100], ticktext[20分, 40分, 60分, 80分, 100分], tickfontdict(size10, color#94a3b8), gridcolor#334155, linecolor#334155 ), angularaxisdict( gridcolor#334155, linecolor#334155, tickfontdict(size12, color#f8fafc) ) ) ) fig.write_html(output_html, include_plotlyjscdn) print(f高级极坐标多维雷达图看板已成功导出至: {output_html})生产落地的三条核心红线维度序列首尾必须闭合Loop Closure在传入theta和r数组时末尾必须显式追加第一个维度的名称与数值若漏写闭合点雷达图最后一个点与起点之间不会相连导致多边形产生缺口、填充区域崩溃。多指标必须在入图前完成标准化Min-Max Normalization不同维度的物理单位完全不同金额是数千元频次是个位数必须在数据前置清洗阶段统一映射为0 ~ 100的标准无量纲评分确保图形比例协调。同图对比实体严禁超过 3 个雷达图如果叠加超过 4 个以上的实体半透明多边形会大面积重叠揉成一团严重破坏可读性。多实体场景应采用小多组图Small Multiples并排独立展示。