百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

MATLAB实例讲解scatter函数绘制二维散点图

yund56 2025-04-04 01:09 42 浏览

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


1.scatter函数

scatter 
用于绘制散点图
语法
scatter(x,y)
scatter(x,y,sz)
scatter(x,y,sz,c)
scatter(___,'filled')
scatter(___,mkr)
scatter(___,Name,Value)
scatter(ax,___)
s = scatter(___)
说明
scatter(x,y) 在向量 x 和 y 指定的位置创建一个包含圆形的散点图。
该类型的图形也称为气泡图。
scatter(x,y,sz) 指定圆大小。要绘制大小相等的圆圈,请将 sz 指定为
标量。要绘制大小不等的圆,请将 sz 指定为长度等于 x 和 y 的长度的
向量。
scatter(x,y,sz,c) 指定圆颜色。要以相同的颜色绘制所有圆圈,请将 
c 指定为颜色名称或 RGB 三元组。要使用不同的颜色,请将 c 指定为
向量或由 RGB 三元组组成的三列矩阵。
scatter(___,'filled') 填充圆形。可以将 'filled' 选项与前面语
法中的任何输入参数组合一起使用。
scatter(___,mkr) 指定标记类型。
scatter(___,Name,Value) 使用一个或多个名称-值对组参数修改散点图。
例如,'LineWidth',2 将标记轮廓宽度设置为 2 磅。
scatter(ax,___) 将在 ax 指定的坐标区中,而不是在当前坐标区中绘制
图形。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
s = scatter(___) 返回 Scatter 对象。在创建散点图后,以后可使用
 s 对其进行修改。

2.实例

2.1 实例1

程序

clc;
clear all;
close all;
rng(30)
num = 100;
x = linspace(0,2*pi,num);
y = sin(x) + rand(1,num);  
figure(1);
subplot(2,2,1)
scatter(x,y)
xlabel('x');
ylabel('y');
grid on;
% 使用大小不同的圆圈创建一个散点图。以平方磅为单位指定大小
subplot(2,2,2)
scatter(x,y,10)
xlabel('x');
ylabel('y');
grid on;
subplot(2,2,3)
scatter(x,y,0.5)
xlabel('x');
ylabel('y');
grid on;
subplot(2,2,4)
sz = linspace(1,100,num);
scatter(x,y,sz)
xlabel('x');
ylabel('y');
grid on;

运行结果


2.2 实例2

程序

clc;
clear all;
close all;
rng(31)
num = 100;
x = linspace(0,2*pi,num);
y = cos(x) + rand(1,num); 
c = linspace(1,10,length(x));
figure;
subplot(2,1,1);
%x、y 和 c 中的相应元素确定每个圆形的位置和颜色。
%scatter 函数将 c 中的元素映射到当前颜色图中的元素。
scatter(x,y,[],c);
subplot(2,1,2);
c1 = rand(length(x),3);
subplot(2,1,2);
scatter(x,y,[],c1);

运行结果


2.3 实例3

程序

clc;
clear all;
close all;
rng(31)
num = 100;
x = linspace(0,2*pi,num);
y =0.1* x.^2 + rand(1,num); 
y1 = cos(x)+sin(x);
%填充标记
%创建一个散点图并填充标记。scatter 使用标记边的颜色填充每个标记。
sz = 25;
c = linspace(1,10,length(x));
figure
scatter(x,y,sz,c,'filled')
hold on;
scatter(x,y1,sz,c,'filled')
xlabel('x');
ylabel('y');
grid on;
%指定标记符号
%创建向量 x 和 y,作为带随机干扰的正弦和余弦值。
%然后,创建一个散点图,并使用面积为 140 平方磅的菱形标记。
theta = linspace(0,2*pi,150);
x = sin(theta) + 0.75*rand(1,150);
y = cos(theta) + 0.75*rand(1,150);  
sz = 140;
figure
scatter(x,y,sz,'d','filled')
%更改标记颜色和线条宽度
% 创建向量 x 和 y,作为带随机干扰的正弦和余弦值。


% 创建一个散点图并设置标记边颜色、标记面颜色和线条宽度。
theta = linspace(0,2*pi,300);
x = sin(theta) + 0.75*rand(1,300);
y = cos(theta) + 0.75*rand(1,300);  
sz = 40;
figure
scatter(x,y,sz,'MarkerEdgeColor',[0 .5 .5],...
              'MarkerFaceColor',[0 .7 .7],...
              'LineWidth',1.5)
          

运行结果


2.4 实例4

程序

clc;
clear all;
close all;
%指定目标坐标区和标记类型
%从 R2019b 开始,您可以使用 tiledlayout 和 nexttile 函数显示分块图。
% 调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区
% 对象 ax1 和 ax2。将在每个坐标区中绘制散点数据。在底部散点图中,指定使用实心菱形标记。
rng(60);
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
figure;
tiledlayout(2,1)
ax1 = nexttile;
scatter(ax1,x,y)
ax2 = nexttile;
scatter(ax2,x,y,'filled','d')
%创建并修改散点序列
theta = linspace(0,1,500);
x = exp(theta).*sin(100*theta);
y = exp(theta).*cos(100*theta);
figure;
subplot(2,1,1);
s = scatter(x,y);
% %在创建散点序列后,使用 s 查询并设置其属性。将线宽设置为 0.6 磅。
% 将标记边颜色设置为蓝色。使用 RGB 三元组颜色设置标记面。
subplot(2,1,2);
s = scatter(x,y);
s.LineWidth = 0.6;
s.MarkerEdgeColor = 'b';
s.MarkerFaceColor = [0 0.5 0.5];

运行结果


3.参考内容

[1]MathWorks官方scatter函数帮助文档

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


作 者 | 郭志龙

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

相关推荐

仍需打磨:首款Windows 10X模拟器上手

今天,微软发布了适用于Windows10X的首款模拟器,以便于开发人员初步了解适用于双屏设备的操作系统调整。微软希望在SurfaceNeo今年年底正式发售之前,让开发人员对应用程序进行优化。因此...

Windows10 编译OpenCV4.5源码

在OpenCV4.5+VisualStudio2017开发环境配置中,介绍了OpenCV4.5的下载和安装,待扩展内容OpenCV源码编译,在本文中做补充。研究源码无疑是学习OpenCV的一...

微软7年磨一剑,Windows 10X抢先上手体验

2月22日消息,微软在去年10月正式推出了Windows10X系统,该系统除了可用于传统的电脑外,同样适用于双屏设备或者折叠屏设备,拥有更好的触控操作体验。Windows10X在操作系统底层、命令...

Office重新设计了图标,你觉得如何?

微软重新设计了Office的应用图标,在接下来的几个月里,这些图标将从移动端和网页端开始陆续推广至各大平台。距离Office图标的最近一次更新还是在2013年,那时鲍尔默时代的产物,那时微软还在纠结是...

微软发布 Win10 Build 21376 内测版:重新设计默认用户界面字体

IT之家5月7日消息今年早些时候,微软意外地确认正在为Windows10进行UI改进,并在预览版中发现了相关的非活动代码。微软今天宣布向开发渠道中的内测用户发布Windows1...

前端开发需要了解常用7种JavaScript设计模式

作者|Deven译者|王强策划|小智转发链接:https://mp.weixin.qq.com/s/Lw4D7bfUSw_kPoJMD6W8gg前言JavaScript中的设计模式指的是...

「Qt入门第二篇」基础(二)编写Qt多窗口程序

导语程序要实现的功能是:程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直接关闭这个对话框,便不能进入主窗口,整个程序也将退出。当进入主窗口后,我们按下按钮,会弹出一个对话框,无论如何关闭这个对...

在吴中 ,哪里有学网页设计的培训班?

网页设计介绍Web2.0标准布局之网页长期签约就业班(全日制)课程收费:7680元课程周期:5-6个月(45分钟/课)使用教材:《教师自编教材》考核发证:Adobe《网页设计师》培训内容第一部份:...

Qt快速入门(工程的创建、UI界面布局、多线程、项目)

本文档将介绍QT工程的创建、UI界面布局,并以计数器为例了解QT中多线程的用法,最终完成一个基础的QT项目。1创建QT工程文件在安装好QT之后,能够在其安装组件中找到QtCreator,点击设置项...

应用崩溃有救啦!Windows新更新将解决应用崩溃问题

【CNMO新闻】对于不少上班族来说,当自己的电脑在运行某个应用程序时,突然出现应用程序崩溃问题,常常会让人十分苦恼。尤其是对于设计师或者编辑,当自己的作品未能及时保存应用崩溃全部消失的时候,简直就是痛...

Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)

在PythonQtGUI设计:窗口布局管理方法【基础篇】(基础篇—5)文章中,聊到了如何使用QtDesigner进行窗口布局管理,其实在QtDesigner中可以非常方便进行窗口布局管理设计,...

思考:如何设计游戏业务框架

虽然现在连主机游戏都纷纷加入了网战部分,不过其身份主要充当状态同步,矛盾点集中在同步即时性上。以大量数值逻辑为主的业务功能侧重点则不同。如果说写代码就是用状态的操作给问题建模,那么编程范式和设计模式种...

用.NET设计一个假装黑客的屏幕保护程序

本文主要介绍屏幕保护程序的一些相关知识,以及其在安全方面的用途,同时介绍了如何使用.NET开发一款屏幕保护程序,并对核心功能做了介绍,案例代码开源:https://github.com/sangy...

光的艺术:灯具创意设计

本文转自|艺术与设计微信号|artdesign_org_cn“光”是文明的起源,是思维的开端,同样也是人类睁眼的开始。每个人在出生一刻,便接受了光的照耀和洗礼。远古时候,人们将光奉为神明,用火来...

Python Qt GUI设计:将UI文件转换Python文件三种妙招(基础篇—2)

在开始本文之前提醒各位朋友,Python记得安装PyQt5库文件,Python语言功能很强,但是Python自带的GUI开发库Tkinter功能很弱,难以开发出专业的GUI。好在Python语言的开放...