Matlab绘图(二)—散点图绘制

  • 前言
    • 二维散点图
      • scatter函数
      • gscatterr函数
      • 思考
    • 三维散点图
      • scatter3函数

前言

总结一下最近针对散点图的绘制学习到的scatter与gscatter函数以及当我们需要绘制散点图,并按照一定的规律对这些二维散点进行分类,分类结果用颜色来进行区分时,自己的一些想法。

二维散点图

scatter函数

scatter - 散点图

此 MATLAB 函数 在向量 x 和 y 指定的位置创建一个包含圆形的散点图。该类型的图形也称为气泡图。scatter(x,y)  x数据 y数据
scatter(x,y,sz)  sz是圆圈的大小 可以用矩阵来设置对应x y点的圆圈大小
scatter(x,y,sz,c) c控制颜色,其颜色可直接赋值 r、 g 、k、 b等,也可以用矩阵来设置对应x、y点对应圆圈的颜色分布
scatter(___,'filled') 颜色填充
scatter(___,mkr)
scatter(___,Name,Value)
scatter(ax,___)
s = scatter(___)

gscatterr函数

gscatter - Scatter plot by group

This MATLAB function creates a scatter plot of x and y, grouped by group.gscatter(x,y,group)  x y是对应的坐标数据,group是数据的分类矩阵
gscatter(x,y,group,clr,sym,siz)
gscatter(x,y,group,clr,sym,siz,doleg)
gscatter(x,y,group,clr,sym,siz,doleg,xnam,ynam)
h = gscatter(...)

关于这两个函数的详细用法,大家可以直接help scatter、help gscatterr
这里,我根据实际情况做一些比较:

绘制散点图,并按照一定的规律对这些二维散点进行分类,分类结果用颜色来进行区分。
clc;
clear;
A=magic(6)
group=[1,2,3,3,2,3]
%scatter(x,y,sz,c) c控制颜色,其颜色可直接赋值 r、 g 、k、 b等,也可以用矩阵来设置对应x、y点对应圆圈的颜色分布
scatter(A(:,1),A(:,2),[],[1 2 3 3 2 1 ],'filled')
colorbar;
figure();
gscatter(A(:,1),A(:,2),group)
colorbar;
figure();
gscatter(A(:,1),A(:,2),[1,2,3,4,5,6])
colorbar;

figure();
gscatter(A(:,1),A(:,2),[1,2,3,4,5,6]);
colorbar;:

figure();
gscatter(A(:,1),A(:,2),group)
colorbar;

figure;
scatter(A(:,1),A(:,2),[],[1 2 3 3 2 1 ],‘filled’)
colorbar;

可以看到,区别的话就是:

gscatter函数画出来的图图例是根据自定义的group矩阵来进行区分的。 而利用scatter函数画出来的图,图例没有区分,但是散点图对应的颜色其实是当前颜色栏的默认等间隔划分。颜色栏的更改可以利用图窗界面进行操作:

  1. 点击箭头(编辑绘图)
  2. 属性编辑器中选择颜色图(默认有14种颜色图,支持自定义)


  关于自定义用法我推荐大家看看  [matlab中的colorbar用法(显示色阶的颜色栏)](https://blog.csdn.net/xuxinrk/article/details/80842120?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161107169716780299013632%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=161107169716780299013632&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-80842120.pc_search_result_cache&utm_term=matlab%20%E4%BF%9D%E5%AD%98%E8%87%AA%E5%B7%B1%E7%9A%84%E9%A2%9C%E8%89%B2%E6%A0%8F)可以学习到如何自定义颜色栏、保存并调用。当然,颜色的配搭也是个技术活,理工科直男只能望而生畏了!!!

思考

以上是我们借助matlab的函数调用参数来实现的多颜色变化,其实我还有个比较笨的方法:

  1. 通过循环和判断条件提前把数据做好分类
  2. 画图时利用for循环和hold on进行多次绘制
  3. 最终显示在一张图上

具体使用时,可以利用for循环进行绘制,自定义的颜色、数据需要提前放入对应的矩阵中。这里我就只示范一下hold on的使用,跳过数据分类环节,颜色采用简单的r、g、b,可以看到该方案行得通。

A=magic(6)
scatter(A(1:2,1),A(1:2,2),'r','filled')
hold on;
scatter(A(3:4,1),A(3:4,2),'g','filled')
hold on;
scatter(A(5:6,1),A(5:6,2),'b','filled')

三维散点图

scatter3函数

scatter3 - 三维散点图

此 MATLAB 函数 在向量 X、Y 和 Z 指定的位置显示圆圈。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(___)

用法的话类似于scatter,只不过多了一维数据。
这里做一个简单的示例:

clc;
clear;
A=magic(6)
group=[1,2,3,3,2,3]
%scatter3(x,y,z,sz,c) c控制颜色,其颜色可直接赋值 r、 g 、k、 b等,也可以用矩阵来设置对应x、y点对应圆圈的颜色分布
scatter3(A(:,1),A(:,2),A(:,3),[],[1 2 3 3 2 1 ],'filled')
colorbar;


同样,颜色栏的修改可以参考上述二维散点图中的方法。
当然,二维散点图同样的思考方案也适用于三维散点图的绘制。


☀ 记录自己学习的同时,也希望能对大家有所帮助,欢迎留言交流!


Matlab绘图(二)—变色散点图二维、三维绘制相关推荐

  1. Matlab绘图(1)——二维绘图

    Matlab绘图(1)--二维绘图 Matlab基础系列教程传送门: Matlab基础(0)--命令行常用指令 Matlab基础(1)--基础知识 Matlab基础(2)--向量与多项式 Matlab ...

  2. MATLAB绘图与图形处理(2)

    原文地址为: MATLAB绘图与图形处理(2) 7.2  三维图形 7.2.1  三维曲线.面填色命令 命令1  comet3 功能  三维空间中的彗星图.彗星图为一个三维的动画图像,彗星头(一个小圆 ...

  3. 【matlab】画二维/三维散点图时用颜色及散点大小表示数据大小

    前几天用matlab画图时组长要求要用不同的颜色和大小区分数据的大小-- 看了matlab的官方文档很久也没有找到自己想要的答案,反复试验+看别人的博客总结出来了matlab画上述要求散点图的方法 目 ...

  4. MATLAB scatter 画二维/三维散点图时 用颜色表示数值大小 colorbar

    MATLAB scatter 画二维/三维散点图时 用颜色表示数值大小 自己在编程的时候,没有在网上找到很好的解释. 所以把我的代码贴出来,给遇到同样问题的盆友一个参考~ 带注释.看不懂的地方可以给我 ...

  5. Matlab绘图-详细,全面(二维三维等)

    原文 Matlab绘图(图像为本人所绘) 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称 ...

  6. matlab 三维数组运算,MATLAB二维三维画图仿真数组运算

    MATLAB二维三维画图仿真数组运算 1. 数学 (1) 数组运算: x=[1 2 3 4]; y=[3 4 5 6]; z=x+y %数组x与数组y相加得到数组z z = 4 6 8 10 z=x- ...

  7. Matlab中矩阵编号方式以及一维二维三维数据间的相互转换

    Matlab中矩阵编号方式以及一维二维三维数据间的相互转换 文章目录 Matlab中矩阵编号方式以及一维二维三维数据间的相互转换 一.问题的提出 二.一维数据转为二维和三维 三.三维数据转为一维和二维 ...

  8. MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

    目录 1 在MATLAB中初始化二维矩阵 2 在MATLAB中初始化三维矩阵 3 在MATLAB中初始化四维矩阵 4 在MATLAB中初始化N维矩阵 1 在MATLAB中初始化二维矩阵 在MATLAB ...

  9. 计算机绘图二维三维实用教程,计算机绘图二维三维实用教程教学课件作者王建勇第二章.ppt...

    文档介绍: 第2章AutoCAD2007绘图基础§2.1AutoCAD2007的启动§2.2AutoCAD2007工作界面§2.3系统的配置§2.4绘图环境的设置§2.5图形文件的管理§2.6命令的输 ...

最新文章

  1. vue商城项目源码_CMS全栈项目之Vue和React篇(下)(含源码)
  2. C和C++里面常见错误和异常出现怎么解决总结(不断更新)
  3. 对于SpringMVC框架使用的时候出现“警告: No mapping found for HTTP request with URI [/login]”的问题解决方案...
  4. Android移动应用基础教程【数据存储】
  5. smart检测指标详解
  6. 解读《美国国家BIM标准》– BIM能力成熟度模型(六)
  7. 伺服电机的工作原理是什么
  8. Vue项目axios在IE浏览器报promise错误的解决办法
  9. 厉害!6 岁学编程,19 岁收月薪 2 万 的 Offer | 程序人生 2020
  10. python学习实验报告(第一周)
  11. 2016-2017-1 《信息安全系统设计基础》课程总结
  12. 《一个投资家的20年》读书笔记
  13. 车联网(智能车机)测试行业解决方案
  14. Whistle安装及使用指南
  15. Android cec设备,Android HDMI CEC控制服务
  16. linux鼠标点右键无反应,如果鼠标点击右键没有反应怎么办?
  17. Stream入门到实践
  18. 阿里研发工程师JAVA暑期实习二面
  19. 深度学习英文文献_清华超级学霸每周读3000页英文文献?知乎网友集体质疑
  20. Android Framework(一)--对Zygote的理解

热门文章

  1. PNAS:大脑区域间耦合的增加和减少会相应增加和减少人类大脑中的振荡活动
  2. 阿里云CDN和全站加速区别在哪?使用有感
  3. 热点解答:nmn抗衰老安全吗,nmn最安全的品牌是什么
  4. Java+Python 微信公众号自动给女朋友推送专属浪漫早安问候
  5. 3.BootLoader引导启动程序
  6. 千牛工作台linux版,深度商店应用千牛工作台、Discord、QQ(Linux)、新浪微博安卓版...
  7. HBuilder开发旅游类APP(二) ----- mui结合H5+,快速实现首页、登录、注册等功能
  8. excel计算式自动计算_计算macd 分解步骤一步一步详细计算macd 用excel计算macd
  9. 用马青公式计算圆周率,Python语言
  10. Linux 块设备层中的Multi-queue分析