第四章 图形处理
平面坐标画点——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轴的上下限和色差范围
色彩的表示方法
用单字母(或英文单词)表示
- 用单引号内的一个字母(或相应的英文单词)表示。
b | g | r | c | m | y | k | w |
---|---|---|---|---|---|---|---|
蓝 | 绿 | 红 | 青 | 品红 | 黄 | 黑 | 白 |
用红、绿、蓝色所占比例
- 用[ ]内的三个0-1间的三个数字表示。三个数字分别表示红、绿、蓝色所占的成分比例。
颜色 | 红 | 绿 | 蓝 | 颜色 | 红 | 绿 | 蓝 |
---|---|---|---|---|---|---|---|
红 | 1 | 0 | 0 | 青 | 0 | 1 | 1 |
绿 | 0 | 1 | 0 | 白 | 1 | 1 | 1 |
蓝 | 0 | 0 | 1 | 黑 | 0 | 0 | 0 |
黄 | 1 | 1 | 0 | 灰 | 0.5 | 0.5 | 0.5 |
品红 | 1 | 0 | 1 | 其它 | 0.1 | 0.3 | 0.6 |
每一个点的颜色也可用一行三列的随机数(在0-1之间的纯小数)数组(矩阵)表示为随机色。即rand(1,3)。
例1 自定义颜色
今有两组数据如下,请在直角坐标系下画散点图。点的大小自定,颜色可为灰色,品红色,青色等
x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
y | 2 | 3 | 5 | 7 | 8 | 9 | 12 | 15 | 16 | 19 |
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])
例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'); % 保存到指定文件夹
评论 (0)