使用 MATLAB 绘制三维散点图:根据坐标和距离映射点的颜色和大小

在数据可视化中,三维散点图是一种非常直观的方式来展示数据的分布。MATLAB 提供了强大的 scatter3 函数,可以用来绘制三维散点图,而通过调整点的颜色和大小,可以进一步增强图形的表现力。

在本篇博客中,我们将逐步讲解如何使用 MATLAB 读取 Excel 文件中的数据,并绘制四个子图。每个子图中的点的颜色和大小将根据 X、Y、Z 坐标值及其离原点的距离进行映射。让我们一起动手实现这个可视化效果吧!

步骤 1:导入数据

假设我们有一个名为 data.xlsx 的 Excel 文件,其中包含三列数据:X 坐标、Y 坐标和 Z 坐标。这些数据将作为绘图的基础。我们首先使用 MATLAB 的 readtable 函数来导入 Excel 文件中的数据。

步骤 2:计算点的大小

为了使每个点的大小与数据的某些特征相关联,我们可以根据坐标的值或者离原点的距离来调整点的大小。例如,可以将 X、Y、Z 的值映射到点的大小,或者根据每个点到原点的距离来调整大小。

步骤 3:设置颜色映射

MATLAB 的 scatter3 函数允许我们根据数据的值映射点的颜色。在本例中,我们将使用 cool 渐变色来表示不同的数值。cool 渐变色是一种从蓝色到粉色的渐变色,非常适合这种数据映射。

我们可以通过 scatter3 函数的第二个参数来指定每个点的颜色,颜色将根据不同的坐标或距离值进行映射。

步骤 4:绘制图形

接下来,我们将绘制四个子图,每个子图展示不同的映射方式。我们使用 subplot 函数将一个图形窗口分成四个子图。

  • 子图 1:点的颜色根据 X 坐标值映射,点的大小也根据 X 坐标值进行调整。
  • 子图 2:点的颜色根据 Y 坐标值映射,点的大小根据 Y 坐标值进行调整。
  • 子图 3:点的颜色根据 Z 坐标值映射,点的大小根据 Z 坐标值进行调整。
  • 子图 4:点的颜色根据离原点的距离映射,点的大小也根据距离进行调整。

步骤 5:保存图像

在图形完成后,我们可以使用 print 函数将其保存为一个高分辨率的 JPEG 文件

代码:

clc; 
clear; 
close all; %% 导入数据
data = readtable('data.xlsx');  % 读取 Excel 文件
X = data.X;  % X 坐标
Y = data.Y;  % Y 坐标
Z = data.Z;  % Z 坐标%% 计算距离原点的距离
distance = sqrt(X.^2 + Y.^2 + Z.^2);  % 计算每个点与原点的距离%% 计算点的大小(可以根据实际需要进行缩放调整)
k=200;
sizeX = X / max(X) * k;  % 根据 X 坐标映射大小
sizeY = Y / max(Y) * k;  % 根据 Y 坐标映射大小
sizeZ = Z / max(Z) * k;  % 根据 Z 坐标映射大小
sizeDistance = distance / max(distance) * k;  % 根据距离映射大小%% 颜色渐变设置
colormap('cool');  % 使用 cool 渐变色%% 绘制图形% 子图 1: 根据 X 映射颜色和大小
ax1 = subplot(221); 
scatter3(X, Y, Z, sizeX, X, 'filled');  % 点的大小根据 X 坐标,颜色根据 X 坐标变化
colormap(ax1, 'cool');  % 使用 cool 渐变色
colorbar;  % 显示颜色条
xlabel('X', 'Fontname', '微软雅黑');
ylabel('Y', 'Fontname', '微软雅黑');
zlabel('Z', 'Fontname', '微软雅黑');
title('根据 X 坐标映射颜色和大小', 'Fontname', '微软雅黑');% 子图 2: 根据 Y 映射颜色和大小
ax2 = subplot(222); 
scatter3(X, Y, Z, sizeY, Y, 'filled');  % 点的大小根据 Y 坐标,颜色根据 Y 坐标变化
colormap(ax2, 'cool');
colorbar;
xlabel('X', 'Fontname', '微软雅黑');
ylabel('Y', 'Fontname', '微软雅黑');
zlabel('Z', 'Fontname', '微软雅黑');
title('根据 Y 坐标映射颜色和大小', 'Fontname', '微软雅黑');% 子图 3: 根据 Z 映射颜色和大小
ax3 = subplot(223); 
scatter3(X, Y, Z, sizeZ, Z, 'filled');  % 点的大小根据 Z 坐标,颜色根据 Z 坐标变化
colormap(ax3, 'cool');
colorbar;
xlabel('X', 'Fontname', '微软雅黑');
ylabel('Y', 'Fontname', '微软雅黑');
zlabel('Z', 'Fontname', '微软雅黑');
title('根据 Z 坐标映射颜色和大小', 'Fontname', '微软雅黑');% 子图 4: 根据离原点的距离映射颜色和大小
ax4 = subplot(224); 
scatter3(X, Y, Z, sizeDistance, distance, 'filled');  % 点的大小根据离原点的距离,颜色也根据距离变化
colormap(ax4, 'cool');
colorbar;
xlabel('X', 'Fontname', '微软雅黑');
ylabel('Y', 'Fontname', '微软雅黑');
zlabel('Z', 'Fontname', '微软雅黑');
title('根据离原点的距离映射颜色和大小', 'Fontname', '微软雅黑');%% 保存图像
print(gcf, 'scatter_plot_output_with_size.jpg', '-djpeg', '-r900');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vulkan入门】04-开启Debug输出

目录 先叨叨git信息关键代码和主要APIVulkanEnv::SetDebugUtilMessenger()VulkanEnv::CreateVkInstance() 题外话 先叨叨 到上篇为止我们已经作了很多事情了。建立了Instance、挑选了物理设备、建立的Device和Queue。 之前做的都是相对简单和线性的工作,只要认真对…

卷积神经网络(CNN)的层次结构

卷积神经网络(CNN)是一种以其处理图像和视频数据的能力而闻名的深度学习模型,其基本结构通常包括以下几个层次,每个层次都有其特定的功能和作用: 1. 输入层(Input Layer): 卷积神经网…

【深度学习】四大图像分类网络之ResNet

ResNet网络是在2015年由微软实验室中的何凯明等几位提出,在CVPR 2016发表影响深远的网络模型,由何凯明团队提出来,在ImageNet的分类比赛上将网络深度直接提高到了152层,前一年夺冠的VGG只有19层。斩获当年ImageNet竞赛中分类任务第…

美团一面,有点难度

前几天分享过一篇训练营的朋友在阿里的一面面经,挺简单的她也是很轻松的过了,感兴趣的可以看一下我之前发的文章。 今天要分享的还是她的面经,美团的一面,感觉比阿里的难一些,各位观众老爷你怎么看? 自我介…

VS下网络快速连接检测实现

一.问题: VS实现PC软件和单片机的网络连接的时候,如果网线没有插入,检测连接失败,一般设置网络连接为非阻塞方式,但是如果单片机返回比较慢,会导致正常情况下也连不上,下面代码通过 设置等待方…

Windows电脑伪关机(快速启动模式),怎么真关机

Windows电脑在关机的时候,进入到一个伪关机的状态,也就是并没有真正的关机,但是在一些系统更新、变更了一些设置,进行重启等操作也会进入到真关机状态 这种一般是开启快速启动模式,开启了快速启动模式功能会在关机的时…

计算属性computed

使用 export default 的写法(Vue 单文件组件)和 使用 new Vue() 的写法(实例化 Vue)二者之间的区别: 1. 使用 export default 的写法(Vue 单文件组件) 这种写法常用于 Vue 的单文件组件&#xf…

【开发文档】资源汇总,持续更新中......

文章目录 AI大模型数据集PytorchPythonUltralyticsOpenCVNetronSklearnCMakeListsNVIDIADocker刷题网站持续更新,欢迎补充 本文汇总了一些常用的开发文档资源,涵盖了常用AI大模型、刷题网站、Python、Pytorch、OpenCV、TensorRT、Docker 等技术栈。通过这…

element Plus中 el-table表头宽度自适应,不换行

在工作中,使用el-table表格进行开发后,遇到了小屏幕显示器上显示表头文字会出现换行展示,比较影响美观,因此需要让表头的宽度变为不换行,且由内容自动撑开。 以下是作为工作记录,用于demo演示教程 先贴个…

模型预测控制(Model Predictive Control)

学习模型预测控制的几个阶段: 1.迷茫,一头雾水,立刻忘记: 一个易懂的MPC理论推导过程教程 2.感兴趣,知道了大概讲些什么东西,但是不知道如何应用: 一个系统讲解MPC的入门教程1 3.开始深度学习: 待续…

2021高等代数【南昌大学】

证明多项式 f ( x ) = 1 + x + x 2 2 ! + ⋯ + x n n ! f(x) = 1 + x + \frac{x^2}{2!} + \cdots + \frac{x^n}{n!} f(x)=1+x+2!x2​+⋯+n!xn​ 无重根。f ( x ) − f ′ ( x ) = x n n ! f(x) - f(x) = \frac{x^n}{n!} f(x)−f′(x)=n!xn​ ( f ( x ) , f ′ ( x ) ) = ( f (…

鸿蒙Next通过oss上传照片到阿里云

前言 最近在写纯血鸿蒙的APP,需要用到oss上传照片,之前的客户端 Android 和 IOS 都已经实现了,获取的阿里云签名的上传地址是服务端实现的,相信大部分公司都是这样的模式,服务端也是调用阿里云的SDK来实现的&#xff…

三维测量与建模笔记 - 5.3 光束法平差(Bundle Adjustment)

此篇笔记尚未理解,先做笔记。 如上图,在不同位姿下对同一个物体采集到了一系列图像, 例子中有四张图片。物体上某点M,在四幅图像上都能找到其观测点。 上式中的f函数是对使用做投影得到的估计点位置。求解这个方程有几种方法&…

C++学习0.2: RAII

引用: 【代码质量】RAII在C编程中的必要性_raii 在c中的重要性-CSDN博客 C RAII典型应用之lock_guard和unique_lock模板_raii lock-CSDN博客 前言: 常用的线程间同步/通信(IPC)方式有锁(互斥锁、读写锁、自旋锁)、…

【NLP 10、优化器 ① SGD 随机梯度下降优化器】

目录 一、定义 二、什么是梯度下降 三、SGD的工作原理 四、SGD的优化公式(更新规则) 五、SGD的优缺点 优点 缺点 六、如何选择学习率 七、使用SGD优化器训练一个简单的线性回归模型 祝你 随时攥紧偶然 永远拥有瞬间 —— 24.12.6 一、定义 随机梯度下降…

WiFi受限不再愁,电脑无网络快速修复指南

有时在试图连接WiFi时,会发现网络连接受限,或无法正常访问互联网。这种情况不仅影响了工作效率,还可能错过重要的信息。那么,究竟是什么原因导致了电脑WiFi连接受限呢?又该如何解决这一问题呢?小A今天就来教…

使用CancellationTokenSource来控制长时间sql查询中断

前端 <!-- 透明的覆盖层&#xff0c;显示在页面上方&#xff0c;包含进度条 --><Grid Visibility"{Binding IsLoading}" Background"Transparent" HorizontalAlignment"Stretch" VerticalAlignment"Stretch" ZIndex"1&…

java对整张图片添加水印(把水印铺满整张图片)

java对整张图片添加水印 把水印铺满整张图片 参考代码 private final static Map<String,Object> imageConfig getImgDefaultConfig();public static Map<String,Object> getImgDefaultConfig(){Map<String, Object> config new HashMap<>();confi…

微服务即时通讯系统(5)用户管理子服务,网关子服务

用户管理子服务&#xff08;user文件&#xff09; 用户管理子服务也是这个项目中的一个业务最多的子服务&#xff0c;接口多&#xff0c;但是主要涉及的数据表只有user表&#xff0c;Redis的键值对和ES的一个搜索引擎&#xff0c;主要功能是对用户的个人信息进行修改管理&#…

基于合成错误增强的标签精细化网络用于医学图像分割|文献速递-生成式模型与transformer在医学影像中的应用

Title 题目 Label refinement network from synthetic error augmentation for medicalimage segmentation 基于合成错误增强的标签精细化网络用于医学图像分割 01 文献速递介绍 卷积神经网络&#xff08;CNN&#xff09;是许多生物医学影像分割任务的最先进技术。许多CNN…