MATLAB的scatter3函数绘制三维散点图

MATLAB的scatter3函数绘制三维散点图

首页休闲益智三维气泡图更新时间:2024-05-09

对于离散的数据,我们可以使用MATLAB绘制散点图,从图形中分析数据的变化趋势以及相关性。MATLAB的scatter3函数是用于绘制三维的散点图(又称气泡图),今天主要是以官方的帮助文档内容中的实际例子讲解使用scatter函数绘制三维散点图。


1.scatter3函数

scatter3 三维散点图 语法 scatter3(X,Y,Z) scatter3(X,Y,Z,S) scatter3(X,Y,Z,S,C) scatter3(___,'filled') scatter3(___,markertype) scatter3(___,Name,Value) scatter3(ax,___) h = scatter3(___) 说明 scatter3(X,Y,Z) 在向量 X、Y 和 Z 指定的位置显示圆圈。 scatter3(X,Y,Z,S) 使用 S 指定的大小绘制每个圆圈。 要绘制大小相等的圆圈,请将 S 指定为标量。要绘制具有特定 大小的每个圆,请将 S 指定为向量。 scatter3(X,Y,Z,S,C) 使用 C 指定的颜色绘制每个圆圈。 如果 C 是 RGB 三元组,或者是包含颜色名称的字符向量或字符串, 则使用指定的颜色绘制所有圆圈。 如果 C 是一个三列矩阵,其中 C 中的行数等于 X、Y 和 Z 的长度, 则 C 的每行指定相应圆圈的 RGB 颜色值。 如果 C 是长度与 X、Y 和 Z 的长度相同的向量,则 C 中的值线性 映射到当前颜色图中的颜色。 scatter3(___,'filled') 使用前面的语法中的任何输入参数组合 填充这些圆。 scatter3(___,markertype) 指定标记类型。 scatter3(___,Name,Value) 使用一个或多个名称-值对组参数修改 散点图。 scatter3(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前 坐标区 (gca) 中。选项 ax 可以位于前面的语法中的任何输入参数 组合之前。 h = scatter3(___) 返回 Scatter 对象。在创建散点图后,可使用 h 修改其属性。


2.实例

2.1 创建三维散点图

程序

clc; clear all; close all; rng(40); data = rand(100,3); x = data(:,1); y = data(:,2); z = data(:,3); figure(1); subplot(2,1,1); scatter3(x,y,z,'b') xlabel('x'); ylabel('y'); zlabel('z'); subplot(2,1,2); scatter3(x,y,z,'filled') xlabel('x'); ylabel('y'); zlabel('z');

运行结果


2.2 改变标记大小和颜色

程序

clc; clear all; close all; x = 1:0.01:5; y = linspace(1,5,length(x)); z = x.^2 y.^2; s = 10*rand(1,length(x)); figure; scatter3(x,y,z,s,'filled') %改变标记颜色 和大小 [X,Y,Z] = sphere(16); %sphere - 生成球面,此 MATLAB 函数 生成一个包含 16*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 = repmat([50,25,10],numel(X),1); %numel 函数用于求得数组元素的数目 C = repmat([1,2,3],numel(X),1); s = S(:); c = C(:); figure scatter3(x,y,z,s,c) view(40,35)

运行结果


2.3 填充标记

程序

clc; clear all; close all; %修改标记 rng(50) num = 500; z = linspace(0,8*pi,num); x = 5*cos(z) rand(1,num); y = 5*sin(z) rand(1,num); figure subplot(1,2,1); scatter3(x,y,z,'*') view(-30,10) subplot(1,2,2); scatter3(x,y,z,'MarkerEdgeColor','k', 'MarkerFaceColor',[0 .75 .75]) view(-30,10) figure(2) tiledlayout(2,1) ax1 = nexttile; ax2 = nexttile; scatter3(ax1,x,y,z,'MarkerFaceColor',[0 .75 .75]) scatter3(ax2,x,y,z,'*')

运行结果


本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙

编 辑 | 郭志龙
校 对 | 郭志龙

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved