Matlab三种绘图方式

目录

一、多个子图排列

1. 效果图

2. 实现代码

二、图像中多条曲线

1. 效果图

 2. 实现代码

三、一图有两个纵坐标

1. 效果图

 2. 实现代码


一、多个子图排列

1. 效果图

多子图排列

2. 实现代码

多子图:​​subplot(m,n,k)将一个窗口划分成m×n个小块,每个小块存放一个子图,k是子图的编号。 编号规则是: 从左到右边,从上到下依次编号。

%% 定义函数
  t = (0 : pi/50 : 2*pi)';  % 列向量  101*1
  k = (0.4 : 0.1 : 1);      % 行向量  1*7
  y = cos(t)*k ;            % 矩阵101*7
%% 画第一幅子图
  subplot(2,2,1);                    % 操作两幅子图中的第一幅  
  plot(t, y, 'r', 'LineWidth', 1.5); % 画图,t是横坐标,y是纵坐标,属性    lineWidth的值是1.5(即线宽度为1.5), 颜色为红色(手动指定)
  title('y随t的变化图');              % 图名
  xlabel('t');                       % 横坐标轴名
  ylabel('y=cos(t)*k');              % 纵坐标轴名
%%  画第二幅子图
  subplot(2,2,2);                    % 操作两幅子图中的第二幅  
  plot(k, y, 'LineStyle', ':');      % 线的形状是虚点线,色彩是彩色的,当有多条线,且不指定时,按照默认的色彩次序用细实线绘制多条曲线
  title('y随k的变化图');              % 图名
  xlabel('k');                       % 横坐标轴名
  ylabel('y=cos(t)*k');              % 纵坐标轴名
%% 画第三幅子图
  subplot(2,2,3);                    % 操作两幅子图中的第三幅   
  plot(t, y, k, y, 'Marker', '*', 'MarkerSize', 7.0);  % 一幅图上有两个数据集,设置数据点形为*,大小是7.0
  title('y随两种参数的两种变化图');    % 图名
  xlabel('k');                       % 横坐标轴名
  ylabel('y=cos(t)*k');              % 纵坐标轴名

二、图像中多条曲线

1. 效果图

单图中再次绘制

 2. 实现代码

%% 定义函数
    x  = 0:0.01:2*pi;
    y1 = sin(x);
    y2 = cos(x);
%% 画图/多次叠绘
    F1 = plot(x, y2);                          % 设置图像的句柄为F1
    set(F1, 'LineStyle', '-.', 'color', 'b');  % 对F1的图像进行设置
    hold on;                                   % 在y1图像的基础上,再绘制y2图像
    F2 = plot(x, y1, 'r');                     % 设置图像的句柄为F2
    set(F2, 'color', 'r');                     % 对F2的图像进行设置
%% 加注释(完全可以用图形化界面工具来做)
    text(3, 0.1, '{\fontsize{15}\leftarrow这个地方好陡峭}');
%% 加网格
    grid on;                                   % 应用分格线(网格)
    set(gca, 'xtick', [0: 0.5: 7]) ;           % 修改网格间隔,获得gca句柄(坐标轴的句柄),设置xtick(x轴网格)从0~7,间隔是0.5
    set(gca, 'ytick', [-1; -0.6; 0; 0.6; 1]);  % 固定网格线
%% 加图例(完全可以用图形化界面工具来做)
    h = legend([F2, F1], 'sin(x)', 'cos(x)');  % 加一个图例,句柄为h,指明F2是sin(x),F1是cos(x)
    set(h, 'fontsize', 16, 'color', 'k', 'edgecolor', 'r', 'textcolor', 'w');  % 对图例h进行精细设置
%% 坐标轴控制
    axis([0, 2*pi-0.4, -0.8, 1]);  % 将横坐标范围设定到0~2*pi-0.4,纵坐标范围设定到-0.8~1
%% 横纵坐标的名称
    title('{\fontsize{14}\bfsin(x)和cos(x)的曲线}');
    xlabel('{\fontsize{14}\bft\rightarrow}');
    ylabel('{\fontsize{14}\bfy}');
%% 拆分图例,能够让图例中的F1和F2分离开,各自都能相互移动
    ax1 = axes('position', get(gca, 'position'), 'visible', 'off');
    legend(ax1, F1, 'sin(x)', 'location', 'northwest');
    ax2 = axes('position', get(gca, 'position'), 'visible', 'off');
    legend(ax2, F2, 'cos(x)', 'location', 'northeast');

三、一图有两个纵坐标

1. 效果图

单图两侧有纵坐标

 2. 实现代码

%% 定义函数
    x  = 0:0.01:20;
    y1 = 200*exp(-0.05*x).*sin(x);
    y2 = 0.8*exp(-0.5*x).*sin(10*x);
%% 画图
    figure;  % 新建一个图像
    % 两个轴的句柄AX,两个图形对象的句柄H1和H2
    % AX(1)是左轴,AX(2)是右轴。
    [AX, H1, H2] = plotyy(x, y1, x, y2);
%% 设置两个纵坐标的名称
    set(get(AX(1), 'ylabel'), 'String', 'Slow Decay');  % 第一个纵坐标的名称
    set(get(AX(2), 'ylabel'), 'String', 'Fast Decay');  % 第二个纵坐标的名称
    % 上面两行等价于下面两行
    %%% ylabel(AX(1), 'Slow Decay');  % 第一个纵坐标的名称
    %%% ylabel(AX(2), 'Fast Decay');  % 第二个纵坐标的名称
%% 设置两个纵坐标的样式
    set(H1, 'LineStyle', '--');  % 设置为虚线
    set(H2, 'LineStyle', ':');   % 设置为点线
%% 设置标题和横坐标
    xlabel('Time (\musec)');        % 横坐标的名称
    title('Multiple Decay Rates');  % 标题
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值