当前位置: 首页 > news >正文

使用 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');

相关文章:

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

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

数仓技术hive与oracle对比(五)

附录说明 附录是对测试过程中涉及到的一些操作进行记录和解析。 oracle清除缓存 alter system flush shared_pool; 将使library cache和data dictionary cache以前保存的sql执行计划全部清空,但不会清空共享sql区或者共享pl/sql区里面缓存的最近被执行的条目。刷…...

金融数学在股市交易中的具体应用

### 1. 风险管理 - **VaR(在险价值)**: VaR是衡量投资组合潜在损失的指标。例如,如果一个投资组合的VaR为100万元,置信水平为95%,这意味着在未来的一个交易日内,有95%的可能性该投资组合的损失不会超过100…...

Spring6:1 概述

Spring6:1 概述 标签 JAVASpring 目录 Spring 是什么?Spring 的狭义和广义 广义的 Spring:Spring 技术栈狭义的 Spring:Spring Framework Spring Framework 特点Spring 模块组成Spring6 特点 版本要求本课程软件版本 1. 概述 …...

Python Selenium 各浏览器驱动下载与配置使用(详细流程)

1、安装 pip install selenium 2、浏览器驱动下载 Chrome(google)浏览器驱动 下载地址:http://chromedriver.storage.googleapis.com/index.html 或 https://sites.google.com/a/chromium.org/chromedriver/home . 下载地址:http://chromedriver.stor…...

C语言期末考试——重点考点

目录 1.C语言的结构 2.三种循环结构 3.逻辑真假判断 4. printf函数 5. 强制类型转化 6. 多分支选择结构 7. 标识符的定义 8. 三目运算符 1.C语言的结构 选择结构、顺序结构、循环结构 2.三种循环结构 for、while、do-while 3.逻辑真假判断 C语言用0表示false,用非0(不…...

mongo开启慢日志及常用命令行操作、数据备份

mongo开启慢日志及常用命令行操作、数据备份 1.常用命令行操作2.mongo备份3.通过命令临时开启慢日志记录4.通过修改配置开启慢日志记录 1.常用命令行操作 连接命令行 格式:mongo -u用户名 -p密码 --host 主机地址 --port 端口号 库名; 如:连…...

Mybatis-Plus的主要API

一、实体类操作相关API BaseMapper<T>接口 功能&#xff1a;这是 MyBatis - Plus 为每个实体类对应的 Mapper 接口提供的基础接口。它提供了一系列基本的 CRUD&#xff08;增删改查&#xff09;操作方法。例如insert(T entity)方法用于插入一条记录&#xff0c;d…...

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别 一、背景 财务数据是指企业经营活动和财务结果的数据记录&#xff0c;反映了企业的财务状况 与经营成果。对行业、企业的财务数据进行分析&#xff0c;就是要评价其过去的经营业绩、 衡量现在的财务状况、预测…...

【SpringMVC】参数传递 重定向与转发 REST风格

文章目录 参数传递重定向与转发REST风格 参数传递 ModelAndView&#xff1a;包含视图信息和模型数据信息 public ModelAndView index1(){// 返回页面ModelAndView modelAndView new ModelAndView("视图名");// 或// ModelAndView modelAndView new ModelAndView(…...

性能测试需求分析(超详细总结)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、客户方提出 客户方能提出明确的性能需求&#xff0c;说明对方很重视性能测试&#xff0c;这样的企业一般是金融、电信、银行、医疗器械等&#xff1b;他们…...

显卡(Graphics Processing Unit,GPU)架构详细解读

显卡架构主要分为两大类&#xff1a;GPU 核心架构&#xff08;也称为图形处理单元架构&#xff09;和显卡的其他组件&#xff08;如内存、控制器、输出接口等&#xff09;。本篇文章将对显卡架构进行详细分析&#xff0c;重点介绍 GPU 核心架构、显卡计算单元、显存结构、显卡管…...

【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变

【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变 目录 文章目录 【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果&#xff08;包含重要…...

AcWing 2868. 子串分值

文章目录 前言代码思路 前言 还是实力不允许啊&#xff0c;要是实力允许我就一道一道中等题刷了。简单题真够呛。有些题看题解都是看老半天看不懂&#xff0c;假设是这种我是真感觉没必要钻研。我现在大三&#xff0c;要是看一遍题解看不懂就算了&#xff0c;果断放弃。真可以…...

如何进行 JavaScript 性能优化?

要进行 JavaScript 性能优化&#xff0c;我们可以从多个角度进行思考&#xff0c;主要包括减少页面渲染时间、减少内存占用、优化代码执行效率等。以下是优化的一些方法&#xff0c;并结合实际项目代码示例讲解。 目录结构 减少 DOM 操作 缓存 DOM 元素批量更新 DOM 优化 Jav…...

使用TCP编程实现简单登录功能

在Java中&#xff0c;使用TCP编程实现登录功能通常涉及以下步骤&#xff1a; 创建服务器端&#xff0c;监听特定端口&#xff0c;等待客户端连接。创建客户端&#xff0c;连接到服务器端。客户端发送用户名和密码到服务器端。服务器端验证用户名和密码。服务器端返回验证结果给…...

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

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

操作系统文件管理相关习题2

文件管理的任务和功能文件管理 任务&#xff1a;对用户文件和系统文件进行组织管理&#xff0c;以方便用户使用&#xff0c;并保证文件的安全 功能&#xff1a;文件存储空间的管理&#xff0c;目录管理&#xff0c;文件读写管理和保护 目录管理 对目录管理的要求 实现按名存…...

react 通过ref调用子组件的方法

背景 父组件内引入了一个弹窗组件&#xff0c;弹窗组件使用了完全内聚的开发方法&#xff1b; 实现思路 父组件内通过ref获取的子组件&#xff0c;通过current调用子组件的方法&#xff0c;子组件需要通过forwardRef进行“包装”导出&#xff0c;通过useImperativeHandle暴露…...

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...