MATLAB中scatter3函数用法

2023-09-16 10:00:00

目录

语法

说明

向量和矩阵数据

表数据

其他选项

示例

创建三维散点图

改变标记大小

改变标记颜色

填充标记

设置标记类型

设置标记属性

绘制表中的数据

使用自定义标记大小和颜色绘制表数据

指定三维散点图的坐标区

使用句柄设置散点序列属性


        scatter3函数的功能是绘制三维散点图。

语法

scatter3(X,Y,Z)
scatter3(X,Y,Z,S)
scatter3(X,Y,Z,S,C)
scatter3(___,'filled')
scatter3(___,markertype)
scatter3(tbl,xvar,yvar,zvar)
scatter3(tbl,xvar,yvar,zvar,'filled')
scatter3(ax,___)
scatter3(___,Name,Value)
h = scatter3(___)

说明

向量和矩阵数据

scatter3(X,Y,Z) 在 X、Y 和 Z 指定的位置显示圆圈。

  • 要绘制一组坐标,请将 X、Y 和 Z 指定为等长向量。

  • 要在同一组坐标轴上绘制多组坐标,请将 X、Y 或 Z 中的至少一个指定为矩阵。(自 R2022a 开始提供)

scatter3(X,Y,Z,S) 指定圆圈大小。

  • 要更改圆圈的大小,请将 S 指定为向量。

  • 要跨多组坐标指定不同的圆圈大小,请指定一个矩阵。(自 R2022a 开始提供)

scatter3(X,Y,Z,S,C) 指定圆颜色。您可以为所有圆指定一种颜色,也可以更改颜色。例如,您可以通过将 C 指定为 "red" 来绘制所有红色圆。

scatter3(___,'filled') 使用上述语法中的任何输入参数组合填充这些圆。

scatter3(___,markertype) 指定标记类型。

表数据

scatter3(tbl,xvar,yvar,zvar) 绘制表 tbl 中的变量 xvar、yvar 和 zvar。要绘制一个数据集,请为 xvar、yvar 和 zvar 各指定一个变量。要绘制多个数据集,请为其中至少一个参数指定多个变量。对于指定多个变量的参数,指定的变量数目必须相同。(自 R2021b 开始提供)

scatter3(tbl,xvar,yvar,zvar,'filled') 用实心圆绘制表中的指定变量。(自 R2021b 开始提供)

其他选项

scatter3(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于上述语法中的任何输入参数组合之前。

scatter3(___,Name,Value) 通过使用一个或多个名称-值参数设置属性来修改散点图。例如:

  • scatter3(x,y,z,'LineWidth',2) 创建一个标记轮廓为两磅的散点图。

  • scatter3(tbl,'MyX','MyY','MyZ','ColorVariable','MyColors') 根据表中的数据创建一个散点图,并使用表中的数据自定义标记颜色。

h = scatter3(___) 返回 Scatter 对象。在创建散点图后,可使用 h 修改其属性。

示例

创建三维散点图

创建三维散点图。使用 sphere 定义向量 x、y 和 z。

figure
[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];
scatter3(x,y,z)

如图所示:

改变标记大小

使用 sphere 定义向量 x、y 和 z。

[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];

定义向量 s 可指定标记大小。

S = repmat([100,50,5],numel(X),1);
s = S(:);

创建一个三维散点图并使用 view 更改图窗中坐标区的角度。

figure
scatter3(x,y,z,s)
view(40,35)

如图所示:

        x、y、z 和 s 中的相应项确定每个标记的位置和大小。

改变标记颜色

使用 sphere 定义向量 x、y 和 z。

[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];

定义向量 s 和 c 以指定每个标记的大小和颜色。

S = repmat([50,25,10],numel(X),1);
C = repmat([1,2,3],numel(X),1);
s = S(:);
c = C(:);

创建一个三维散点图并使用 view 更改图窗中坐标区的角度。

figure
scatter3(x,y,z,s,c)
view(40,35)

如图所示:

x、y、z 和 c 中的相应项确定每个标记的位置和颜色。

填充标记

将向量 x 和 y 创建为带随机干扰的余弦和正弦值。

z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);

创建一个三维散点图并填充标记。使用 view 可更改图窗中坐标区的角度。

scatter3(x,y,z,'filled')
view(-30,10)

如图所示:

设置标记类型

初始化随机数生成器以使 rand 的输出可重复。将向量 x 和 y 定义为带随机干扰的余弦和正弦值。

rng default
z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);

创建一个三维散点图并设置标记类型。使用 view 可更改图窗中坐标区的角度。

figure
scatter3(x,y,z,'*')
view(-30,10)

如图所示:

设置标记属性

初始化随机数生成器以使 rand 的输出可重复。将向量 x 和 y 定义为带随机干扰的余弦和正弦值。

rng default
z = linspace(0,4*pi,250);
x = 2*cos(z) + rand(1,250);
y = 2*sin(z) + rand(1,250);

创建一个三维散点图并设置标记边颜色和标记面颜色。使用 view 可更改图窗中坐标区的角度。

figure
scatter3(x,y,z,...
        'MarkerEdgeColor','k',...
        'MarkerFaceColor',[0 .75 .75])
view(-30,10)

如图所示:

绘制表中的数据

        自 R2021b 开始提供

        绘制表中数据的一种便捷方法是将表传递给 scatter3 函数,并指定要绘制的变量。例如,将 patients.xls 以表 tbl 形式读取。通过将 tbl 作为第一个参数传递给 scatter3 函数,后跟变量名称,绘制 Systolic、Diastolic 和 Weight 变量之间的关系。默认情况下,轴标签与变量名称匹配。

tbl = readtable('patients.xls');
scatter3(tbl,'Systolic','Diastolic','Weight');

如图所示:

        也可以同时绘制多个变量。例如,通过将 xvar 参数指定为元胞数组 {'Systolic','Diastolic'},在同一 x 轴上绘制两个血压变量。然后,添加一个图例。图例标签与变量名称匹配。

scatter3(tbl,{'Systolic','Diastolic'},'Age','Weight');
legend

如图所示:

使用自定义标记大小和颜色绘制表数据

        自 R2021b 开始提供

        绘制表中数据并自定义颜色和标记大小的一种方法是设置 ColorVariable 和 SizeData 属性。您可以在调用 scatter3 函数时将这些属性设置为名称-值参数,也可以稍后在 Scatter 对象上设置它们。

        例如,将 patients.xls 以表 tbl 形式读取。用填充标记绘制 Systolic、Diastolic 和 Weight 变量之间的关系。通过指定 ColorVariable 名称-值参数来更改标记颜色。将 Scatter 对象返回为 s,以便以后可以设置其他属性。

tbl = readtable('patients.xls');
s = scatter3(tbl,'Systolic','Diastolic','Weight','filled', ...
    'ColorVariable','Diastolic');

如图所示:

        通过设置 SizeData 属性,将标记大小更改为 100 磅。然后添加颜色栏。

s.SizeData = 100;
colorbar

如图所示:

指定三维散点图的坐标区

自 R2019b 开始提供

可以使用 tiledlayout 和 nexttile 函数显示分块图。

        加载 seamount 数据集以获取向量 x、y 和 z。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。然后通过将坐标区对象指定为 scatter3 的第一个参数,在坐标区中创建单独的散点图。

load seamount
tiledlayout(2,1)
ax1 = nexttile;
ax2 = nexttile;
scatter3(ax1,x,y,z,'MarkerFaceColor',[0 .75 .75])
scatter3(ax2,x,y,z,'*')

如图所示:

使用句柄设置散点序列属性

使用 sphere 函数创建向量 x、y 和 z。

[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];
y = [0.5*Y(:); 0.75*Y(:); Y(:)];
z = [0.5*Z(:); 0.75*Z(:); Z(:)];

创建向量 s 和 c 以指定每个标记的大小和颜色。

S = repmat([70,50,20],numel(X),1);
C = repmat([1,2,3],numel(X),1);
s = S(:);
c = C(:);

创建一个三维散点图并返回散点序列对象。

h = scatter3(x,y,z,s,c);

如图所示:

使用 RGB 三元组颜色值设置标记面颜色。使用圆点表示法设置属性。

h.MarkerFaceColor = [0 0.5 0.5];

如图所示:

更多推荐

睿趣科技:抖音开店的操作流程有哪些

随着社交媒体的兴起,抖音已经成为了一款备受欢迎的短视频分享平台。许多人看到了在抖音上开店的商机,因此抖音开店也逐渐成为了一种新兴的商业模式。那么,抖音开店的操作流程究竟有哪些呢?下面将为您详细介绍。第一步:选定产品和目标市场在开店之前,您需要先确定您要销售的产品或服务以及目标市场。了解您的受众群体是谁,他们的需求是什么

【微信小程序】最新隐私弹窗组件

程序员何苦为难程序员微信小程序又发布了新一波政策就是获取头像昵称位置啥啥各种用户信息的时候都需要先搞个弹窗让用户确认才行小程序用户隐私保护指引内容介绍必须跟上啊咱公司的大佬马上搞了个组件贴出来学习一下顺便给大家参考<!--components/privacy/privacy.wxml--><!--隐私弹窗--><vie

通过API爬取到的淘宝商品详情数据展示(api测试入口)

API名称:item_get响应数据item:{num_iid:"698291711589",title:"美洋MEIYANG【现货】大嫂的西装内有乾坤率性撞色TR垫肩直筒西服",desc_short:"",price:439.12,total_price:0,suggestive_price:0,orginal_pr

山洪灾害监测预警系统解决方案

一、方案背景近几年我国频繁发生山洪灾害现象,造成大量的人员伤亡,使得洪涝灾害死亡总人数呈上升趋势,群死群伤事件时有发生。为了提高山洪灾害监测预警能力,加强灾害发生时的快速反应能力,我司研发出了山洪灾害监测预警系统设备,它具有技术先进、功能完美、应用成熟等特点。在近年汛期发挥了显著的防洪减灾的效益,有效减少了山洪灾害造成

SQLBackupAndFTP 数据库定时备份工具介绍

今天给大家推荐推荐一款非常实用的数据库定时备份工具,大神必备!一、SQLBackupAndFTP是什么?SQLBackupAndFTP是一款用于备份SQLServer、MySQL和PostgreSQLServer数据库的实用软件,执行定期的完整备份、差异备份和事务日志备份,备份完成后产生的备份压缩包文件可以将它们存储在

​Segment-and-Track Anything——通用智能视频分割、跟踪、编辑算法解读与源码部署

一、万物分割随着Meta发布的SegmentAnythingModel(万物分割)的论文并开源了相关的算法,我们可以从中看到,SAM与GPT-4类似,这篇论文的目标是(零样本)分割一切,将自然语言处理(NLP)的提示范式引入了计算机视觉(CV)领域,为CV基础模型提供了更广泛的支持和深度研究的机会。SegmentAny

那些配置服务器踩的坑

最近在配置内网,无外网的服务器,纯纯记录一下踩得坑,希望看到的人不要再走这条弯路。-----------------------------------------------------------------------------------------------------------------------

科技资讯|Vision Pro头显无损音频仅限USB-C AirPods Pro 2耳机

彭博社的马克・古尔曼在最新发布的推文中表示,苹果VisionPro头显的无损音频仅限于USB-CAirPodsPro2耳机。新款采用USB-C的AirPodsPro2升级到了IP54级别(原版不防尘,仅IPX4级抗水),可陪伴用户在恶劣的环境中展开冒险。除此之外,苹果称其将实现具有超低延迟的无损音频,从而通过Apple

Java 学习路线分享 maven 是什么?

Maven是一款基于Java平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven就可以自动完成项目的编译、测试、打包、发布以及部署等工作。Maven是使用Java语言编写的,因此它和Java一样具有跨平台性,这意味着无论是在Windows,还是在

从淘宝数据分析产品需求(商品销量总销量精准月销)

淘宝数据分析总体来说可以分为商品分析、客户分析、地区分析、时间分析四大维度(参考数据雷达的分析思路)。在这里我重点说商品分析。在淘宝上开店的竞争还是非常激烈的,随便拿出一个单品就有很多竞品存在,所以做起来还是很难的,而想要在众多的竞品中做出来,就需要对竞品数据做分析,那么这个竞品数据在哪里查看呢?下面来了解下吧。淘宝竞

浅谈电动汽车充电桩设计与应用研究

安科瑞华楠摘要:目前,随着我国社会经济的快速发展,我国的各个领域都取得了突破性的发展,尤其是在电动汽车充电桩的设计方法,新型的电动汽车充电桩设计已经广泛的受到了人民群众的青睐与认可,而这种发展前景也是非常可观的,从而使越来越多的人更加重视该行业的发展。但是无论哪一行业的发展,都有利有弊,在电动汽车充电桩设计与应用方面仍

热文推荐