AI 自动生成动态多维流向矩阵图(Flow Matrix):跨区域资金结算与贸易往来穿透

在跨国供应链进出口结算、全国大区分公司资金调拨(Capital Transfer)、以及各省份之间跨区域干线贸易对冲分析中,实体之间存在着高维度、高密度的“起点-终点(Origin-Destination / OD 流量矩阵)”网络:
- 全国 31 个省份 / 8 大地理大区;
- 每一个区域既是资金与货物的**“净流出方(Source)”,又是“净流入方(Destination)”**;
- 财务与风控审计专家需要审视 $8 \\times 8 = 64$ 个交叉单元格的资金划拨净额与对冲结算状态。
如果使用传统的地图连线图(OD Flow Map),当 64 条双向航线同时画在同一张地图上时,线条会形成密不透风的“黑色蛛网”,发生严重的视觉遮挡与交叉污染;如果使用普通二维热力图(Heatmap),又只能展示静态数值,无法清晰呈现两两节点之间的“单向流动差额与净结余净流向(Net Inflow / Outflow)”。
有向流向矩阵图(Directed Flow Matrix / OD 热力流向矩阵) 是穿透复杂多实体双向交易网络的专业级图表:它将所有实体在 纵轴(代表流出起点 Origin) 与 横轴(代表流入终点 Destination) 进行严格对称排列,每个单元格的颜色深浅代表交易总金额,主对角线代表区域内部循环,非对称单元格代表跨区域净输入与净输出。
今天我们系统拆解如何利用 Plotly 的 go.Heatmap 引擎,打造工业级跨区域资金与贸易流向矩阵看板。
有向流向矩阵图(Flow Matrix)的对角线与非对称模型
+—————————————————————————————————-+
| 【 8 大区资金结算有向流向矩阵 (OD Matrix) 】 |
+————————–+——————–+——————–+——————————-+
| 流出起点 (Origin / Y轴) | 流向: 华东大区 | 流向: 华南大区 | 流向: 华北大区 |
+————————–+——————–+——————–+——————————-+
| 1. 华东大区 (HQ 所在地) | [ 🔵 ¥ 5,200 万 ] | [ 🟡 ¥ 1,800 万 ] | [ 🟡 ¥ 2,100 万 ] |
| | (主对角线: 内循环) | (华东 ──► 华南) | (华东 ──► 华北) |
+————————–+——————–+——————–+——————————-+
| 2. 华南大区 | [ 🟢 ¥ 850 万 ] | [ 🔵 ¥ 3,100 万 ] | [ 🟡 ¥ 620 万 ] |
| | (华南 ──► 华东) | (主对角线: 内循环) | (华南 ──► 华北) |
+————————–+——————–+——————–+——————————-+
| 3. 华北大区 | [ 🟢 ¥ 920 万 ] | [ 🟢 ¥ 410 万 ] | [ 🔵 ¥ 2,400 万 ] |
| | (华北 ──► 华东) | (华北 ──► 华南) | (主对角线: 内循环) |
+————————–+——————–+——————–+——————————-+
核心财务洞察解读:
1. 主对角线 (Top-Left to Bottom-Right): 代表各大区自身的本地内部结算体量;
2. 非对称差额对比:
– 华东流向华南 (¥ 1,800 万) vs 华南流向华东 (¥ 850 万)
– 结论:【华东对华南存在高达 ¥ 950 万元的单向巨额资金净输出与供应链垫资!】
生产级 Python 实战代码:构建交互式流向矩阵看板
import plotly.graph_objects as go
import numpy as np
def generate_flow_matrix_dashboard(output_html: str):
# 1. 声明各大核心区域名称 (XY 轴对称)
regions = ['华东大区', '华南大区', '华北大区', '华中大区', '西南大区', '西北大区']
# 2. 构造 6×6 跨区域资金调拨流向矩阵数据集 (单位: 万元)
# 行索引 i 为流出起点 (From),列索引 j 为流入终点 (To)
flow_matrix_data = np.array([
[5200, 1850, 2100, 1450, 1200, 850], # 华东流出
[ 850, 3100, 920, 1100, 780, 450], # 华南流出
[ 920, 620, 2400, 890, 650, 520], # 华北流出
[ 780, 890, 750, 1800, 950, 380], # 华中流出
[ 650, 720, 580, 820, 1500, 310], # 西南流出
[ 420, 350, 410, 320, 280, 950] # 西北流出
])
# 3. 构建 Plotly 交互式热力矩阵
fig = go.Figure(data=go.Heatmap(
z=flow_matrix_data,
x=[f"流入: {r}" for r in regions],
y=[f"流出: {r}" for r in regions],
colorscale='Viridis',
colorbar=dict(title="资金调拨额 (万元)", thickness=15, len=0.8),
# 单元格内直接高亮打印具体金额数值
text=flow_matrix_data,
texttemplate="%{text:,.0f}",
textfont=dict(color="#ffffff", size=11),
hovertemplate='<b>跨区域资金调拨明细</b><br>流出方: <b>%{y}</b><br>接收方: <b>%{x}</b><br>结算金额: <b>¥ %{z:,} 万元</b><extra></extra>'
))
# 4. 界面排版与深色主题美化
fig.update_layout(
title="<b>2026 年 Q3 全域跨区域资金结算与贸易往来有向流向矩阵大盘 (OD Flow Matrix)</b>",
title_font_size=18,
title_x=0.5,
template="plotly_dark",
paper_bgcolor="#0f172a",
plot_bgcolor="#0f172a",
height=650,
margin=dict(l=100, r=40, t=70, b=80),
xaxis=dict(side="bottom", tickfont=dict(size=12, color="#f8fafc")),
yaxis=dict(autorange="reversed", tickfont=dict(size=12, color="#f8fafc"))
)
fig.write_html(output_html, include_plotlyjs='cdn')
print(f"跨区域流向矩阵看板已成功导出至: {output_html}")



