[ PROMPT_NODE_27150 ]
Pymoo 可视化
[ SKILL_DOCUMENTATION ]
# Pymoo 可视化参考
pymoo 中可视化功能的综合参考。
## 概览
Pymoo 提供了八种可视化类型,用于分析多目标优化结果。所有绘图均封装了 matplotlib,并接受标准的 matplotlib 关键字参数进行自定义。
## 核心可视化类型
### 1. 散点图
**目的:** 可视化 2D、3D 或更高维度的目标空间
**适用场景:** 帕累托前沿、解分布、算法比较
**用法:**
python
from pymoo.visualization.scatter import Scatter
# 2D 散点图
plot = Scatter()
plot.add(result.F, color="red", label="Algorithm A")
plot.add(ref_pareto_front, color="black", alpha=0.3, label="True PF")
plot.show()
# 3D 散点图
plot = Scatter(title="3D Pareto Front")
plot.add(result.F)
plot.show()
**参数:**
- `title`: 图表标题
- `figsize`: 图表尺寸元组 (宽, 高)
- `legend`: 显示图例 (默认: True)
- `labels`: 坐标轴标签列表
**Add 方法参数:**
- `color`: 颜色规格
- `alpha`: 透明度 (0-1)
- `s`: 标记大小
- `marker`: 标记样式
- `label`: 图例标签
**高维投影:**
对于 >3 个目标,自动创建散点图矩阵
### 2. 平行坐标图 (PCP)
**目的:** 比较多个解在多个目标上的表现
**适用场景:** 多目标问题、比较算法性能
**机制:** 每个垂直轴代表一个目标,线条连接每个解在各目标上的值
**用法:**
python
from pymoo.visualization.pcp import PCP
plot = PCP()
plot.add(result.F, color="blue", alpha=0.5)
plot.add(reference_set, color="red", alpha=0.8)
plot.show()
**参数:**
- `title`: 图表标题
- `figsize`: 图表尺寸
- `labels`: 目标标签
- `bounds`: 每个目标的归一化边界 (min, max)
- `normalize_each_axis`: 每个轴归一化到 [0,1] (默认: True)
**最佳实践:**
- 针对不同目标量级进行归一化
- 使用透明度处理重叠线条
- 限制解的数量以保持清晰 (<1000)
### 3. 热力图
**目的:** 展示解的密度和分布模式
**适用场景:** 理解解的聚类、识别空白区域
**用法:**
python
from pymoo.visualization.heatmap import Heatmap
plot = Heatmap(title="Solution Density")
plot.add(result.F)
plot.show()
**参数:**
- `bins`: 每个维度的箱数 (默认: 20)
- `cmap`: 颜色映射名称 (例如: "viridis", "plasma", "hot")
- `n