Matlab画图总结(1)

一、点

1.二维散点图

Step1. scatter函数画点

scatter(x,y):在向量x、y指定位置画出气泡图,默认蓝色,默认size=36,默认圆圈。
简易版画图:scatter(x,y,sz,’_’,‘filled’,‘mkr’)

  • sz是一个固定的标量,则画出的是圆圈大小固定的气泡图;
  • ‘__’:用字符代表颜色
  • ‘filled’:填充圆形
  • mkr:指定线型,注意别与’filled’冲突
  • 注意:最后四项可有可无,随要求设置,无的选项就是默认

花哨版画图:scatter(x,y,sz,c,‘filled’,mkr)

  • sz是与x向量维数相同的向量,[例:sz=linspace(1,100,200)],则画出的是圆圈大小递增的气泡图;
  • c是一个与x维数相等的向量,[例:c=linspace(1,100,length(x))],则画出颜色渐变的圆圈;
  • 注意:sz的位置就是大小,c不能抢占sz的位置。随机后四项搭配的时候要合适,不能瞎搭。

s=scatter(x,y,sz,’_’,‘filled’,mkr)
s.LineWidth=0.6; %对点的轮廓宽度进行设置
s.MarkerEdgeColor=‘k’; %对点的轮廓颜色进行设置
s.MarkerFaceColor=‘b’; %对点的轮廓内部颜色进行设置

总结自己常用点的设置

符号 含义 符号 含义
k 黑色 o 圆圈
r 红色 .
b 蓝色 x 十字叉
y 黄色 * 星号
m 品红色 s 方形

总结自己常用的画二维点的代码(简洁)

scatter(x,y,'r.')            %红色的原点
scatter(x,y,'filled')       %默认的蓝色实心圆圈
scatter(x,y,'filled','k')
scatter(x,y,'filled','r')
scatter(x,y,40,'r')
s.LineWidth=1;

Step2.text函数对散点添加注释

情形一:对点添加序号
建立plot_number(X,Y)函数

function[]=plot_number(X,Y)     %两个变量
scatter(X,Y,'k.');  %画出黑色点的散点图
hold on
for i=1:length(X)     
    a=num2str(i)       %将数值i转化为字符串
    text(X(i)+10,Y(i),a)    %对点(X(i),Y(i))进行标号    %注意:添加注释的时候可以适当地远离所画的点
end
hold off
end

举例结果如图:
Matlab画图总结(1)_第1张图片

情形二:对点添加符号和注释
建立plot_text(X,Y,u)函数

function[]=plot_text(X,Y,u)     %注意在输入变量u的时候要用列向量,例如:a=['1号';'2号'],之间一定要用分号
scatter(X,Y,'b.')   %画出蓝色点的散点图
hold on 
for i=1:length(X)
    a=num2str(u(i,:))   %将位置数值i转化为相应位置的字符串
    text(X(i)+10,Y(i),a)      %注意:在添加注释的时候,可以适当地远离所画的点
end
hold off
end

举例结果如图:
Matlab画图总结(1)_第2张图片

2.三维散点图

step1.scatter3函数画点

scatter3(x,y,z): 在(x,y,z)指定位置上画出气泡图,默认蓝色,默认size=36,默认圆圈。
简易版画图:scatter3(x,y,z,s,’__’,‘filled’,‘mkr’)
具体解释同二维
花哨版画图:scatter3(x,y,z,s,c)

  • 取出点(X,Y,Z)
[X,Y,Z] = sphere(16);
x = [0.5*X(:); 0.75*X(:); X(:)];            %取出三个球面上的点
y = [0.5*Y(:); 0.75*Y(:); Y(:)];            %X(:)是按列的位置重新组成一个列向量
z = [0.5*Z(:); 0.75*Z(:); Z(:)];            %注意[]内部元素是;依旧形成的是列向量
  • 圈圈面积大小不同:
S=repmat([50,25,10],numel(X),1)
s=S(:)
  • 颜色渐变的设置
C=repmat([1,2,3],numel(X),1)
c=C(:)

repmat(A,m,n)是对矩阵A进行重排,把A当做一个模块,复制重排为m行n列的整体矩阵;
numel(X)是对X向量元素进行计数;
C(:)是按矩阵位置重新排成一个列矩阵

h=scatter(x,y,z,‘filled’,‘mkr’)
h.LineWidth=0.6 %对点的轮廓宽度进行设置
h.MarkerEdgeColor=‘k’ %对点的轮廓颜色进行设置
h.MarkerFaceColor=‘b’ %对点的内部颜色设置进行设置
view(-30,10) %对于x,y轴的视角

总结自己常用的三维点的代码段

scatter3(x,y,z,'filled')
scatter3(x,y,z,'filled','k')
scatter3(x,y,z...
             MarkerEdgeColor='k'...
             MarkerFaceColor='b');
 view(-30,10)

Step2.利用text函数对三点添加注释

同二维一样
建立plot_number函数

function[]=plot_number(x,y,z)
scatter3(x,y,z,'filled','k')
hold on
for i=1:length(x)
     a=num2str(i)
     text(x(i),y(i),z(i),a)
end
hold off
end

建立plot_text函数

function[]=plot_text(x,y,z,u)
scatter3(x,y,z,'filled','k')
hold on
for i=1:length(x)
    a=num2str(u(i,:))       %将字符串矩阵的位置数值转化为对应的字符串
    text(x,y,z,a)
end
hold off
end

你可能感兴趣的:(Matlab学习总结)