Matlab图形处理(图形绘制)——基础公式初学必看【1】

目录

  • 1、二维图形
    • 1.1基本图形命令
    • 1.2二维线图的绘制
      • 图形绘制命令(补充)
        • **子图绘制**
        • **图形标注**
    • 1.3 特殊图形
      • 1.3.1 条形图
      • 1.3.2 饼形图
      • 1.3.3 散点图
      • 1.3.4 直方图
      • 1.3.5 特殊坐标系
        • 双坐标系
        • 极坐标
        • 对数坐标

用到的函数:

figure 创建图形窗口
plot(x,y,LineSpec) 绘制线图

1、二维图形

1.1基本图形命令

  1. 创建图形窗口:figure
    figure(n) % 创建编号为n的图形窗口
    figure % 创建新图形窗口
  2. 坐标系范围控制:axis
    格式如下:
    axis([xmin,xmax,ymin,ymax]) %调整图中x、y轴的范围
    axis auto % 使用默认设置
    axis square % 产生正方形坐标系
    axis equal % 纵、横坐标轴采用等长刻度
    axis equal tight % 将图形以紧缩的方式显示
    axis fill % 将坐标轴的取值范围分别设置为绘图所用数据在
    % 相应方向上的最大值和最小值
    axis on/off % 显示/取消坐标轴
  3. 坐标系刻度控制:xticks, xticklabels, yticks, yticklabels
    xticks(ticks) : 设置 x 轴刻度值,这些值是 x 轴上显示刻度线的位置。指定 ticks 为递增值向量;例如 [0 2 4 6]。此命令作用于当前坐标区。yticks与此类似。
    xticklabels(labels) : 设置当前坐标区的 x 轴刻度标签。可将 labels 指定为字符串数组或字符向量元胞数组。yticklabels与此类似。
  4. 网格线控制: grid
grid on 给当前的坐标轴增加格线
grid minor 使用更细化的网格
grid off 从当前的坐标轴中去掉格线
grid 转换格线的显示与否的状态
  1. 边框线控制: box
box on 给图形加边框线
box off 给图形不加边框线
  1. 清除图形窗口
clf 清除当前图形窗口上的图形
close 关闭当前图形窗口
close all 关闭所有图形窗口
  1. 叠加绘图:hold on
    在同一图形窗口中绘制多条曲线,可以在plot中一次同时绘制,也可以先后迭加绘图。先后迭加绘图需要使用hold on以保持前面的图形。
代码 涵义
hold on 保留当前图形与当前坐标轴的属性值,后面的图形命令 只能在当前存在的坐标轴中增加图形
hold off 在画新图形之前,重新设置坐标轴的属性为缺省值, 关闭 hold on功能
hold 在on与off之间转换。即在增加图形与覆盖图形之间切换
hold all 保留当前颜色和线型,在绘制随后的图形时就使用当前的颜色和线型

1.2二维线图的绘制

1、 plot(X,Y) :
【例1】绘制函数 y = s i n ( x ) , x ∈ [ − 2 π , 2 π ] y=sin(x),x\in[-2\pi,2\pi] y=sin(x),x[2π,2π] 的图形。

x1 = linspace(-2*pi, 2*pi, 9);    %取x的值
y1 = sin(x1);    %y值
figure    % 产生新的图形窗口
plot(x1, y1)
title('y=sinx, 取点太少的图形')  %赋予标题
x2 = linspace(-2*pi, 2*pi, 101);
y2 = sin(x2);
figure    % 产生新的图形窗口
plot(x2, y2)
title('y=sinx, 取点较密的图形')

得到图形如下
Matlab图形处理(图形绘制)——基础公式初学必看【1】_第1张图片
Matlab图形处理(图形绘制)——基础公式初学必看【1】_第2张图片

【例二】绘制椭圆 x 2 2 2 + y 2 3 2 = 1 \frac{x^2}{2^2}+\frac{y^2}{3^2}=1 22x2+32y2=1的图形。

t = 0:pi/50:2*pi;
x = 4*cos(t); y=3*sin(t);
figure, plot(x, y)

得到图形
Matlab图形处理(图形绘制)——基础公式初学必看【1】_第3张图片
【例三】画出正弦曲线族: y = k s i n ( t ) y=ksin(t) y=ksin(t),其中 t = ∈ [ − π , 2 π ] , k = 1 , 2 , . . . 6 t=\in[-\pi,2\pi],k=1,2,...6 t=[π,2π]k=1,2,...6

t=(-pi:pi/100:2*pi)';  
k=1:6;
y=sin(t)*k; 
figure, plot(t,y)       %y是矩阵形式

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第4张图片
2、 plot(X,Y,LineSpec) :
可对所画图形的标记形状、线条宽度、颜色进行设置。

线形符号 含义
- 实线(默认)
.
虚线
o
* 星号

【例4】 使用不同的颜色、线形,不同的点绘制函数 y = sin ⁡ x , y = cos ⁡ x , x ∈ [ − 2 π , 2 π ] y=\sin x, y=\cos x, x\in[-2\pi, 2\pi] y=sinx,y=cosx,x[2π,2π]的图形。

x = linspace(-2*pi, 2*pi, 101);
y1 = sin(x);
y2 = cos(x);
figure  % 产生新的图形窗口
plot(x, y1, '-.ro', x, y2, '-b*')

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第5张图片

图形绘制命令(补充)

子图绘制

subplot(m,n,k)
将一图形窗口分成m×n个小窗口(子图),k是子图的编号, 序号原则是:左上方为第一幅,依次从左至右、从上至下排号。若m,n,k均为个位数,则可简化为subplot(mnk)

例如 subplot(2,3,2)为两行三列,第二个子图,即第一行第二列(1,2)
也可写为subplot(232)

【例题】分左右2个子图绘制正弦函数及反正弦函数、余弦函数及反余弦函数。并加以适当的坐标控制。

x1 = -pi/2:pi/100:pi/2;
y1 = sin(x1);
x2 = 0:pi/100:pi;
y2 = cos(x2);
figure
subplot(121)%%子图命令
plot(x1,y1,y1,x1)
axis equal
axis([-pi/2,pi/2,-pi/2,pi/2])
hold on, plot([-pi/2, pi/2], [0, 0],'k')
plot([0,0],[-pi/2,pi/2],'k')
hold off
subplot(122)%%子图命令
plot(x2,y2,y2,x2)
axis equal
axis([-1,pi,-1,pi])
hold on, plot([-1, pi],[0, 0],'k')
plot([0,0],[-1,pi],'k')
hold off

输出结果:
Matlab图形处理(图形绘制)——基础公式初学必看【1】_第6张图片

图形标注

1)坐标轴名
xlabel(‘string’) %给当前轴对象中的x轴贴标签
ylabel(‘string’) %给当前轴对象中的y轴贴标签
2)添加标题
title(‘string’) %在当前坐标轴上方以字符串string作为标题
3)图例
legend(‘string1’,‘string2’,…)
legend({‘string1’,‘string2’,…,‘stringN’})

【例题】绘出信号 y = sin ⁡ t sin ⁡ 5 t y=\sin t\sin5t y=sintsin5t及其包络线 y = ± sin ⁡ t y=\pm\sin t y=±sint t ∈ [ 0 , 2 π ] t\in[0, 2\pi] t[0,2π]上的图形,并给出适当的标注。

t=0:pi/100:pi;
y1=sin(t);  y2=-sin(t);
y3=sin(t).*sin(5*t); 
figure, plot(t,y1,'-.r',t,y2,'-.k',t,y3,'-bo')
xlabel('时间'); ylabel('幅度')
title('波形及包络线')
legend('y=sint','y=-sint','y=sintsin5t')

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第7张图片

1.3 特殊图形

1.3.1 条形图

  • 二维竖条形图bar,使用格式为:
    bar(y) 创建一个条形图,y 中的每个元素对应一个条形。如果 y 是矩阵,则 bar 根据 y 中的行对条形分组。
    bar(x,y) 在 x 指定的位置按y的大小绘制条形。
    bar(___,width) 设置条形的相对宽度以控制组中各个条形的间隔。将 width 指定为标量值。可以将此选项与前面语法中的任何输入参数组合一起使用。
    bar(___,style) 指定条形组的样式。可选的样式有: ‘grouped’(以组的形式), ‘stacked’(堆叠条形图), ‘histc’(直方图), ‘hist’
    bar(___,color) 设置所有条形的颜色。可选的颜色有’b’ , ‘r’ , ‘g’ , ‘c’ , ‘m’ , ‘y’ , ‘k’ , 'w’等
x = [1980 1990];
y = [2 6 9
    11 22 32];
bar(x,y)

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第8张图片

y = [2 6 
    9 11 
    22 32];
bar(y)
xticklabels({'1', '2', '3', '4'})%对x坐标进行分类(不改变顺序)

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第9张图片

  • 二维水平条形图
    barh(_),绘制水平条形图,格式同上
x = [1980 1990 2000];
y = [10 20 30];
barh(x,y)

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第10张图片

  • 三维条形图
    bar3(_),三维竖条形图
x = [1980 1990 2000];
y = [10 20 30];
bar3(x,y,'y')

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第11张图片

barh3(_),三维水平条形图

1.3.2 饼形图

  • 1.二维饼形图pie
    pie(X): 用X中的数据画一饼形图,X中的每一元素代表饼形图中的一部分。元素X(i)所代表的扇形大小由其在总体中的比例决定。
    pie(X,explode) : explode与X同维,当对应元素值为非零时,用于指定饼形图中的某些片是否和整个饼形图脱开。
    pie(…,labels) : labels与X同维,用于标注饼形图中的字符串数组,缺省时以X各分量所占的比例为标注。
X = [1 3 0.5 2.5 2];
subplot(1,2,1),pie(X)%子图的运用
subplot(1,2,2),pie(X,[1 0 0 0 0])%用于指示某块分离出来

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第12张图片

  • 2.三维饼形图pie3
    pie3(…) % 绘制三维饼形图,格式同pie

1.3.3 散点图

scatter绘制二维离散点图,常用于表现数据的离散程度及分布特征。使用格式为:
scatter(x,y): 以x和y作为横纵坐标,绘制离散点。
scatter(x,y,sz): sz指定绘图点的大小,当为标量时,表示所有的数据点同等大小。
scatter(x,y,sz,c): c指定绘图所使用的色彩,当为标量时,表示所有的数据点使用同一颜色。
scatter(___,‘filled’): 'filled’表示填充绘图点,默认值是空心的

x = randn(1000,1);
y = randn(1000,1);
s = scatter(x,y,'filled');

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第13张图片

1.3.4 直方图

histogram(X): 将数组X中的所有值从最小值到最大值平均分为若干个区间,依次用条的长度表现每个区间上数的个数或比例。这里区间个数自适应地给出。
histogram(X,nbins): 绘制直方图,指定区间个数为nbins.
histogram(X,edges): 绘制直方图,由edges指定划分的区间。
h=histogram(__): h返回直方图对象,用于观测和设置直方图的属性。

%绘制一个随机数组的直方图
x2 = randn(1000,3);
figure
h = histogram(x2)

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第14张图片

1.3.5 特殊坐标系

  • 双坐标系

plotyy(X1,Y1,X2,Y2): 绘制 Y1 对 X1 的图,在左侧显示 y 轴标签,并同时绘制 Y2 对 X2 的图,在右侧显示 y 轴标签。
plotyy(X1,Y1,X2,Y2,function): 使用指定的绘图函数生成图形。 function 可以是指定 plot、semilogx、semilogy、loglog、stem的函数句柄或字符向量,或者是能表示成 h = function(x,y)的任意 MATLAB函数。
plotyy(X1,Y1,X2,Y2,‘function1’,‘function2’)使用 function1(X1,Y1) 绘制左轴的数据,使用 function2(X2,Y2) 绘制右轴的数据。

但更推荐使用yyaxis创建具有两个y轴的图
yyaxis left %左边坐标激活和设置
yyaxis right %右边
yyaxis(ax,___)

x = linspace(0,10);
y = sin(3*x);
yyaxis left %左边y轴的设置
plot(x,y) %此后可以为左边y轴设置范围、添加标签等

z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150]) %设置范围

Matlab图形处理(图形绘制)——基础公式初学必看【1】_第15张图片

极坐标

对数坐标

!是笔记搬运加上自己的理解
!如有错误欢迎之处
!是个渣渣(我是说我),一起进步

你可能感兴趣的:(matlab)