🗺️ 章节概览
三维等高线是理解三维数据结构的强大工具,本章系统讲解空间等高线的绘制和应用。 包括沿三个方向获取等高线、特定等高线提取、以及四维数据的可视化等技法。 通过等高线,可以将复杂的三维曲面"切片"展示,揭示函数在不同高度或位置的等值特征。 特别是16.3可视化四维数据,包含了大量丰富的图表(图7-17),展示了等高线的多种应用场景。
📊
空间等高线
沿不同方向切片
🎯
投影技术
等高线平面投影
🧭
极坐标
极坐标等高线
📈
三元高斯
多元分布可视化
16.1
沿三个方向获取等高线
沿z、x、y方向的空间等高线切片
🗺️ 等高线探索实验室(Contour Explorer Lab)
探索不同方向的空间等高线
🔍 等高线洞察
📊 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)
观察多元正态分布的等高线和样本生成
0/60
速度1x
👀 观察要点
- • 等高线为椭圆形状
- • 采样点逐个生成,围绕中心分布
- • 相关性影响椭圆的倾斜角度
- • σ₁、σ₂决定椭圆的长短轴
📊 分布参数
标准差 σ₁1.0
标准差 σ₂1.0
相关系数 ρ0.00
等高线层数5
📐 协方差矩阵
Σ = [1.00, 0.00]
[0.00, 1.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固定
沿z方向: f(x, y) = c, z固定
沿x方向: f(y, z) = c, x固定
极坐标转换
x = r·cos(θ)
y = r·sin(θ)
r = √(x² + y²)
y = r·sin(θ)
r = √(x² + y²)
三元高斯分布
f(x) = (2π)^(-3/2)|Σ|^(-1/2)
× exp(-½(x-μ)ᵀΣ⁻¹(x-μ))
× exp(-½(x-μ)ᵀΣ⁻¹(x-μ))
等概率面
(x-μ)ᵀΣ⁻¹(x-μ) = k²
k: 马氏距离
k: 马氏距离
📖 延伸阅读
理论基础
- • 等高线理论:水平集方法
- • 隐式曲线:f(x,y,z)=c的几何
- • 多元微积分:梯度与等高线
- • 协方差矩阵:椭球的几何意义
实际应用
- • 地理信息:地形等高线图
- • 气象学:等压线、等温线
- • 机器学习:决策边界可视化
- • 优化问题:目标函数等高线