← 返回Book 2目录
第16章

三维等高线

3D Contours · 空间等高线与投影技术

从空间等高线到三元高斯分布,掌握7种等高线可视化技法

🗺️ 章节概览

三维等高线是理解三维数据结构的强大工具,本章系统讲解空间等高线的绘制和应用。 包括沿三个方向获取等高线、特定等高线提取、以及四维数据的可视化等技法。 通过等高线,可以将复杂的三维曲面"切片"展示,揭示函数在不同高度或位置的等值特征。 特别是16.3可视化四维数据,包含了大量丰富的图表(图7-17),展示了等高线的多种应用场景。

📊
空间等高线
沿不同方向切片
🎯
投影技术
等高线平面投影
🧭
极坐标
极坐标等高线
📈
三元高斯
多元分布可视化
16.1

沿三个方向获取等高线

沿z、x、y方向的空间等高线切片

🗺️ 等高线探索实验室(Contour Explorer Lab)

探索不同方向的空间等高线

z方向等高线(水平切片)笛卡尔坐标

🔍 等高线洞察

📊 z方向切片:水平等高线
等高线层数:8
展示不同高度的等值曲线

🧪 探索建议

  • • 切换切片方向,观察不同视角
  • • 调整等高线层数,查看细节
  • • 改变坐标系,理解极坐标优势
  • • 开启投影,看等高线的平面映射

📐 切片方向

🧭 坐标系统

等高线层数8
仰角30°
方位角45°

📚 等高线理论

📊
等高线定义
等高线是函数值相等的点的集合。 f(x,y,z) = c 定义了三维空间中的等值曲面。
🧭
极坐标优势
对于径向对称函数,极坐标(r,θ)能更自然地展示等高线为同心圆的特征。
🎯
多方向切片
沿不同方向切片提供多角度观察, 帮助全面理解三维数据结构。
🎯 学习目标:理解等高线如何将三维数据降维展示。 掌握不同方向切片和坐标系统的应用场景。
Python实现
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 笛卡尔坐标
x = np.linspace(-2, 2, 30)
y = np.linspace(-2, 2, 30)
X, Y = np.meshgrid(x, y)

# 计算Z值
Z = np.exp(-(X**2 + Y**2) / 2)

# 创建3D图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制等高线
ax.contour(X, Y, Z, levels=8, zdir='z')

# 设置视角
ax.view_init(elev=30, azim=45)
plt.show()
16.2

特定等高线

提取特定等高线数值和极坐标等高线

📊 核心内容

  • • 提取特定等高线数值:对于单位面 (x₁² + x₂² = 1),提取等高线并映射到曲面
  • • 自定义二次型可视化:定义 f(x) = x^T Q x,将单位圆映射到曲面上
  • • 等高线坐标提取:使用偏导数方法 ∂f/∂x₁ = 0, ∂f/∂x₂ = 0 找到等高线
  • • 投影与映射:将三维等高线投影到二维平面,展示等值线结构

特定等高线提取与可视化

探索如何从三维曲面中提取特定等高线,以及等高线的投影

二维等高线图

三维曲面

📝 关键概念

  • • 等高线方程:f(x₁, x₂) = c,满足该方程的所有点构成等高线
  • • 单位圆:x₁² + x₂² = 1 是 f(x₁, x₂) = x₁² + x₂² 的单位等高线
  • • 投影:将三维等高线投影到xy平面,形成二维等高线图
  • • 偏导数法:通过 ∂f/∂x₁ = 0 和 ∂f/∂x₂ = 0 找到临界点
16.3

可视化四维数据

三维曲面与等高线的丰富展示

📊 本节包含丰富的可视化内容

  • • 图7:三种不同切片方式的等高线"豆腐块"
  • • 图8:垂直x₃切片层
  • • 图9-10:沿z方向获取等高线(8个示例)
  • • 图11-12:可视化三维面数切片(x、y方向)
  • • 图13-14:等单位面对应坐标绘制特定曲面(8个示例)
  • • 图15:提取等高线坐标
  • • 图16:用等高线有交线
  • • 图17:沿三个不同方向切豆腐(21个三维等高线组合)

📈 三元高斯分布动画器(Gaussian Contour Animator)

观察多元正态分布的等高线和样本生成

xy三元高斯分布等高线
0/60
速度1x

👀 观察要点

  • • 等高线为椭圆形状
  • • 采样点逐个生成,围绕中心分布
  • • 相关性影响椭圆的倾斜角度
  • • σ₁、σ₂决定椭圆的长短轴

📊 分布参数

标准差 σ₁1.0
标准差 σ₂1.0
相关系数 ρ0.00
等高线层数5

📐 协方差矩阵

Σ = [1.00, 0.00]
    [0.00, 1.00]
对角元素:方差
非对角元素:协方差

🎯 椭圆特性

• 长轴:最大方差方向
• 短轴:最小方差方向
• 倾斜角:由相关系数决定
• 面积:与行列式相关

📊 统计信息

样本数: 0
均值: (0, 0)
协方差: 0.00

🎓 多元高斯分布理论

📈
概率密度函数
二元高斯分布的概率密度函数由均值向量μ和协方差矩阵Σ完全决定。
⭕
等高线椭圆
等概率密度曲线是椭圆,方程为(x-μ)ᵀΣ⁻¹(x-μ)=k²。
🔄
相关性
ρ=0时椭圆轴对齐坐标轴,ρ≠0时椭圆倾斜,反映变量相关性。
🎯 学习目标:通过动画观察多元高斯分布的样本生成过程。 理解协方差矩阵如何决定等高线椭圆的形状和方向。
Python实现
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import multivariate_normal

# 参数
mu = np.array([0, 0])
sigma1, sigma2 = 1, 1
rho = 0

# 协方差矩阵
cov = np.array([[sigma1**2, rho*sigma1*sigma2],
                [rho*sigma1*sigma2, sigma2**2]])

# 生成网格
x = np.linspace(-4, 4, 100)
y = np.linspace(-4, 4, 100)
X, Y = np.meshgrid(x, y)
pos = np.dstack((X, Y))

# 计算概率密度
rv = multivariate_normal(mu, cov)
Z = rv.pdf(pos)

# 绘制等高线
plt.figure(figsize=(8, 8))
plt.contour(X, Y, Z, levels=5)

# 生成样本
samples = rv.rvs(size=100)
plt.scatter(samples[:, 0], samples[:, 1], alpha=0.5)

plt.xlabel('X')
plt.ylabel('Y')
plt.title('三元高斯分布等高线')
plt.axis('equal')
plt.grid(True, alpha=0.3)
plt.show()

📚 章节总结

空间等高线

  • ✓ 沿z方向:水平切片
  • ✓ 沿x、y方向:垂直切片
  • ✓ contour3D:三维等高线
  • ✓ 多方向组合:全面展示

投影与坐标

  • ✓ 平面投影:等高线到2D平面
  • ✓ 极坐标:圆形等高线
  • ✓ 坐标提取:获取等高线数据
  • ✓ 交线绘制:曲面相交

高级应用

  • ✓ 三元高斯:多元正态分布
  • ✓ 等概率面:概率密度等高线
  • ✓ 协方差:分布形态
  • ✓ 机器学习:决策边界

💡 核心洞察: 等高线将三维数据降维展示,通过不同高度的切片揭示函数的等值特征。 沿不同方向的等高线提供了多角度的观察视角,帮助理解复杂的三维结构。 极坐标等高线特别适合展示具有径向对称性的数据。 三元高斯分布的等高线是椭球面,直观展示了多元正态分布的几何结构。

🎓核心概念解析

空间等高线

• 沿z方向:f(x,y) = c,水平切片
• 沿x方向:f(y,z) = c,垂直于x轴
• 沿y方向:f(x,z) = c,垂直于y轴
• 多方向结合:全方位理解

等高线投影

• 将三维等高线投影到平面
• offset参数控制投影位置
• 帮助理解二维轮廓
• 常用于地形图

极坐标等高线

• 使用(r, θ)坐标系
• 适合径向对称函数
• 圆形或螺旋形等高线
• 转换:x=r·cos(θ), y=r·sin(θ)

坐标提取

• 从等高线对象获取坐标
• allsegs属性:所有线段
• 用于数据分析和处理
• 可导出为数据文件

曲面交线

• 两个曲面相交形成的曲线
• 平面与曲面的交线
• 隐式方程求解
• 空间几何应用

三元高斯分布

• 三维正态分布
• 等高线为椭球面
• 协方差矩阵决定形状
• 用于多元统计分析

💻关键函数速查表

等高线绘制

ax.contour3D(X, Y, Z)
ax.contour(X, Y, Z, zdir='z')
levels=[v1, v2, ...]

投影与坐标

offset=z0 # 投影位置
contour.allsegs # 提取坐标
np.meshgrid(r, theta) # 极坐标

分布函数

scipy.stats.multivariate_normal
.pdf(pos) # 概率密度

📐 核心数学公式

等高线方程
f(x, y, z) = c
沿z方向: f(x, y) = c, z固定
沿x方向: f(y, z) = c, x固定
极坐标转换
x = r·cos(θ)
y = r·sin(θ)
r = √(x² + y²)
三元高斯分布
f(x) = (2π)^(-3/2)|Σ|^(-1/2)
× exp(-½(x-μ)ᵀΣ⁻¹(x-μ))
等概率面
(x-μ)ᵀΣ⁻¹(x-μ) = k²
k: 马氏距离

📖 延伸阅读

理论基础

  • • 等高线理论:水平集方法
  • • 隐式曲线:f(x,y,z)=c的几何
  • • 多元微积分:梯度与等高线
  • • 协方差矩阵:椭球的几何意义

实际应用

  • • 地理信息:地形等高线图
  • • 气象学:等压线、等温线
  • • 机器学习:决策边界可视化
  • • 优化问题:目标函数等高线