1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Matlab绘图(二)—变色散点图二维 三维绘制

Matlab绘图(二)—变色散点图二维 三维绘制

时间:2022-11-06 20:14:52

相关推荐

Matlab绘图(二)—变色散点图二维 三维绘制

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函数画出来的图,图例没有区分,但是散点图对应的颜色其实是当前颜色栏的默认等间隔划分。颜色栏的更改可以利用图窗界面进行操作:

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

关于自定义用法我推荐大家看看 [matlab中的colorbar用法(显示色阶的颜色栏)](/xuxinrk/article/details/80842120?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161107169716780299013632%252522%25252C%252522scm%252522%25253A%2525220713.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的函数调用参数来实现的多颜色变化,其实我还有个比较笨的方法:

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

具体使用时,可以利用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;

同样,颜色栏的修改可以参考上述二维散点图中的方法。

当然,二维散点图同样的思考方案也适用于三维散点图的绘制。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。