第5章 数据可视化——5.4 四维图形可视化

简介: 第5章 数据可视化——5.4 四维图形可视化

5.4  四维图形可视化


5.4.1  用颜色描述第四维


用mesh和surf等指令所绘制的图像,在未给出颜色参量的情况下,图像的颜色是沿着z轴的数据变化的。例如,surf(X,Y,Z)与surf(X,Y,Z,Z)两个指令的执行效果是相同的。将颜色施加于z轴能够产生色彩亮丽的图画,但由于z轴已经存在,因此它并不提供新的信息。

为了更好地利用颜色,可以考虑使用颜色来描述不受3个轴影响的数据的某些属性。为此,需要赋给三维作图函数的颜色参量所需要的“第四维”的数据。

如果作图函数的颜色参量是一个向量或矩阵,那么就用作颜色映像的下标。这个参量可以是任何实向量或与其参量维数相同的矩阵。


例5-33:使用颜色描述第四维示例。

创建M文件并命名为ex5_33.m,利用M文件编辑器在M文件中输入:

clear all
[X, Y, Z] = peaks(30);
R = sqrt(X .^ 2 + Y .^ 2);
subplot(1,2,1);
surf(X, Y, Z, Z);
axis tight
subplot(1,2,2)
surf(X, Y, Z, R);
axis tight

运行M文件,结果如图5-35所示。

其中,在坐标系中描述一个面需要三维数据,而另一维数据描述空间中的点的坐标值,则使用不同的颜色表现出来;在左图中,第四维数据为Z;在右图中,第四维数据为R;在图中可以看到两者的颜色分布发生了明显的变化。

74a5ef3ac632cc9f1565c6c803df8438_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

图5-35  使用颜色描述第四维示例


5.4.2  其他函数


除了surf函数,mesh和pcolor函数也可以将第四维的数据附加到颜色属性上,并在图像中表现出来。各函数的句法列表如表5-15所示。

表5-15  其他函数的句法列表

a8ec1fa99997ed534c04b618e9c55f46_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

除了表5-15所列出的函数,slice函数也可以通过颜色来表示存在于第四维空间中的值,其调用格式如下。

● slice(V,nx,ny,nz):显示三元函数V(X,Y,Z)确定的立体图在x轴、y轴、z轴方向上的若干点(对应若干平面)的切片图,各点的坐标由数量向量sx、sy、sz指定。其中V为大小为m×n×p的三维数组,默认值为X=1:m、Y=1:n、Z=1:p。

● slice(X,Y,Z,V,nx,ny,nz):显示三元函数V(X,Y,Z)确定的立体图在x轴、y轴、z轴方向上的若干点(对应若干平面)的切片图。若函数V(X,Y,Z)中有一个变量X取定值X0,则函数V(X0 ,Y,Z)为X=X0立体面的切面图(将该切面通过颜色表示V的值),各点的坐标由数量向量sx、sy、sz指定。参量X、Y、Z均为三维数组,用于指定立方体V的每点的三维坐标。

● slice(V,XI,YI,ZI):显示由参量矩阵XI、YI、ZI确定的立体图的切片图,参量XI、YI、ZI定义了一个曲面,同时会在曲面的点上计算立体图V的值。需要注意的是,XI、YI、ZI必须为同型矩阵。

● slice(X,Y,Z,V,XI,YI,ZI):沿着由矩阵XI、YI、ZI定义的曲面穿过立体图V的切片图。

● slice(…,'method'):通过method来指定内插值的方法,method可取linear、cubic、nearest。linear指定的内插值方法为三次线性内插值(若未指定,此即为默认值),cubic指定使用三次立方内插值法,nearest指定使用最近点内插值法。



本章小结


本章系统地阐述了将离散数据表示成可视化图形的基本过程,曲线、曲面绘制的基本技法和指令,以及特殊图形的生成和使用示例。读者在绘图时,应当根据实际情况选择合适的函数和算法,使得可视化图形的表示最合理,信息的表现最全面。例如可以使用不同线型、不同颜色、不同数据点标记来凸显不同数据的特征,还可以使用着色、灯光照明、反射效果、不同材质和透明度来处理渲染和烘托表现出高维函数的形状等。


相关文章
|
传感器 监控 安全
闭环反馈系统原理概述
有时,为了获得系统的一致性和稳定性并产生控制系统的期望输出,我们使用反馈回路。反馈只不过是输出信号的一部分。这个概念在控制系统中最常见和最重要,以实现输出的稳定性。根据反馈连接,控制系统分为两种类型。它们是开环控制系统和闭环控制系统。下面简单介绍下闭环反馈系统。
5629 0
闭环反馈系统原理概述
|
消息中间件 缓存 监控
Kafka中的Controller(控制器)节点
Kafka中的Controller(控制器)节点
1920 1
Kafka中的Controller(控制器)节点
|
网络协议 Python
python中socket客户端发送和接收数据
【4月更文挑战第7天】本教程聚焦TCP客户端数据发送与接收。使用Python的`socket`模块,通过`send()`发送字节串至服务器,如`client_socket.send(message_bytes)`;用`recv()`接收数据,如`received_data = client_socket.recv(buffer_size)`。异常处理确保网络错误时程序健壮性,例如`try-except`捕获`socket.error`。理解和掌握这些基础操作对于构建稳定的TCP客户端至关重要。
3204 1
|
机器学习/深度学习 数据可视化 数据挖掘
香烟品牌识别和规格识别设计思路
基于YOLOv8实现香烟品牌与规格(条装/单盒装)识别,采用“品牌+规格”组合为60类的复合类别方案,结合充足标注数据(每类300-500张)、数据增强与反例优化,进行端到端联合训练,提升模型在复杂场景下的检测与分类精度。
|
人工智能 前端开发 API
一人挑战一支研发团队,3步搞定全栈开发
本文是 Qwen3-Coder 挑战赛教程第四期,我将带你完整走通一个真实项目案例:从零搭建一个“AI 舞蹈生成器”网站——上传一张人物照片,点击“立即生成”,即可获得一段该人物跳舞的动态视频。 整个过程仅需三步,无需前端、后端或模型部署经验,真正实现“说话即开发”。
1025 0
|
缓存 监控 Java
《深入理解Spring》性能监控与优化——构建高性能应用的艺术
本文系统介绍了Spring生态下的性能监控与优化实践,涵盖监控体系构建、数据库调优、缓存策略、线程池配置及性能测试等内容,强调通过数据驱动、分层优化和持续迭代提升应用性能。
|
传感器 测试技术 开发工具
通义灵码添加上下文能力怎么用?一篇看懂
Qwen3系列混合推理模型已全面开源,其中Qwen3-235B-A22B在多项测试中表现卓越。通义灵码现已支持Qwen3,并上线编程智能体,具备自主决策与工具使用能力,可完成编码任务。开发者可通过多种方式添加上下文(如代码文件、图片、Git提交等),增强交互效果。体验地址:https://lingma.aliyun.com/download。
1448 35
|
Ubuntu Linux 测试技术
Python 虚拟环境配置
本文总结了 Python 开发中的环境配置、常用操作和常见错误处理。重点介绍了如何使用 `virtualenv` 搭建虚拟环境,解决依赖冲突问题,并保持系统环境的干净。同时,详细说明了依赖库的安装与管理方法,包括使用 `pip install` 安装依赖、生成和使用 `requirements.txt` 文件,以及查看 Python 文档和修改环境变量等实用技巧。
1330 60
|
人工智能 运维 数据处理
单机部署DeepSeek满血版(BF16精度)和Qwen,阿里云百炼专属版AI训推一体机重磅发布!
单机部署DeepSeek满血版(BF16精度)和Qwen,阿里云百炼专属版AI训推一体机重磅发布!
|
机器学习/深度学习 人工智能 自然语言处理
【AI 现况分析】AI 在后端开发领域的应用
【1月更文挑战第26天】【AI 现况分析】AI 在后端开发领域的应用

热门文章

最新文章