matlab学习笔记(2)

matlab学习笔记(2)

苏苏
2022-10-17 / 0 评论 / 28 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年04月05日,已超过849天没有更新,若内容或图片失效,请留言反馈。

第四章 图形处理

平面坐标画点——scatter函数

语法格式

scatter(x, y, s, c, 'filled')

功能:描点,画散点图

  • x, y为点的坐标,s是大小(面积),c是颜色,'filled'为实心填充。
  • x、y可以是点的坐标矩阵。一个命令可以画出多个点。s和c也可以是矩阵。
  • 后三项可省略,以默认数据实现。省略后默认s为50蓝色空心
  • 点的形状默认是圆,也可设成其他形状。其参数值放在s之后任意位置,文本型。可取值:'s'、'd'、'^'、'v'、'p'、'h'等——依次为方块、菱形、上三角、下三角、五角星、六角星。

例1 简单绘制

clc;
x=[1,9,3,5,4,5,3,6,7.5,12];
y=[4,2,1,3,5,6,8,10,9,9];
scatter(x,y,50);
scatter(x,y,60,'g','filled');

简单绘制

例2 随机点绘制

a=0.35;
b=3;
r=randn(1,100);
x=1:100;
y=(a*r+b).*x+3;
scatter(x,y,30,'b','filled');
axis([0,120,1,350])

随机点绘制

对坐标轴进行缩放——axis函数

语法格式

axis([xmin xmax ymin ymax]) % 绘图时x、y轴的上下限
axis([xmin xmax ymin ymax zmin zmax cmin cmax]) % 绘图时x、y、z轴的上下限和色差范围

色彩的表示方法

用单字母(或英文单词)表示

  • 用单引号内的一个字母(或相应的英文单词)表示。
bgrcmykw
绿品红

用红、绿、蓝色所占比例

  • 用[ ]内的三个0-1间的三个数字表示。三个数字分别表示红、绿、蓝色所占的成分比例。
颜色绿颜色绿
100011
绿010111
001000
1100.50.50.5
品红101其它0.10.30.6
每一个点的颜色也可用一行三列的随机数(在0-1之间的纯小数)数组(矩阵)表示为随机色。即rand(1,3)。

例1 自定义颜色

今有两组数据如下,请在直角坐标系下画散点图。点的大小自定,颜色可为灰色,品红色,青色等

x12345678910
y23578912151619
x =[1    2    3    4    5    6    7    8    9    10];
y = [2    3    5    7    8    9    12    15    16    19];
scatter(x,y,30, 'm', 'filled');
axis([0,11,0,20])

散点图例1

例2 绘制抛物线

$ y=2x^2+3x-5 $,红色,圆点,30个单位,空心;

x=-4.75:0.05:3.25;
y=2.*x.*x+3.*x-5;
scatter(x,y,30,'r');

绘制抛物线

例3 三角函数

$ y=3sin(x)+2cos(x) $,品红色,方块,60个单位,实心

x=-2*pi:0.05:2*pi;
y=3.*sin(x)+2.*cos(x);
scatter(x,y,60,'m', 'filled');
axis([-7,7,-5,5]);

三角函数

例4 画圆

圆$ (x-2)^2+(y-3)^2=25 $,绿色,圆点,20个单位,实心。

立体(三维)坐标画点——scatter3函数

语法格式:

scatter3(x, y, z, s, c, 'filled') % x、y、z为三维坐标数据,s、c等意义同前。

例1 普通三维绘图

x=[2,4,6,8,10,1,3,5,7];
y=[3,3,3,3,4,4,4,4,5];
z=[1,2,3,4,5,6,7,8,9];
scatter3(x,y,z,15,'m','filled');

例2 三维散点测试

x=3*rand(100,1)+0.5;
y=4*rand(100,1)+0.3;
z=5*rand(100,1)+0.4;
%scatter3(x,y,z,15,'g','filled');
scatter3(x, y, z, 15, 'm', 'filled','v');

分组描点——gscatter函数

语法格式

gscatter(x,y,g,C,S,siz);

功能描述

  • x,y为各点横纵坐标,g为各点分组情况;不可省略。
  • C为各组色彩字符串,S为各组点的样式字符串,siz为点的大小向量。数据个数与组数相符。均可省略。
clc;
x=rand(300,1);
y=rand(300,1);%300个点的纵横坐标
siz=[10,3,4];%规定三组点的大小
%以下按照各点坐标所在的位置分组
for i=1:300
  if y(i)<0.5*x(i), g(i)=1; end %设为第一组
  if y(i)>1.5*x(i), g(i)=3; end %设为第三组
  %其他为第二组
  if y(i)>=0.5*x(i) & y(i)<=1.5*x(i), g(i)=2;end
end
%以下按各点所处组别,分配其颜色和形状,并画出来
gscatter(x,y,g,'rgb','.o*',siz)%自动给出图例
hold on
%以下画出各组分隔线
plot(x,0.5*x,'m-',x,1.5*x,'c--');
axis([0,1,0,1])
saveas(gcf,'D:\susu\Documents\MATLAB\myfig.jpg'); % 保存到指定文件夹

gscatter函数

0

评论 (0)

取消