【Matlab学习手记】Matlab多个坐标轴实现技巧

您所在的位置:网站首页 matlab一个横坐标对应多个纵坐标 【Matlab学习手记】Matlab多个坐标轴实现技巧

【Matlab学习手记】Matlab多个坐标轴实现技巧

2024-07-10 07:54| 来源: 网络整理| 查看: 265

    Matlab2016B版本提供了一个plotyy函数,可以提供左右两个纵坐标轴,如果需要三个纵坐标轴甚至多个,可参考以下方式:

 

 

    这种方式可以修改任何一条线的属性和坐标轴属性,极为方便。

代码如下:

clear; clc; close all; %% yyaxis 官方帮助文档 demo x = linspace(0, 10, 100); y1 = 2*sin(3*x); y2 = sin(3*x) .* exp(0.5*x); %% 三个纵坐标演示,更多纵坐标可以按照此方法类推 y3 = 10*cos(3*x); % 三条线绘制到一起,注意数据都标准化到 y1 范围 maxY1 = max(y1); maxY2 = max(y2); maxY3 = max(y3); minY1 = min(y1); minY2 = min(y2); minY3 = min(y3); % 归一化 newY2 = (y2 - minY2)/(maxY2 - minY2); % 反归一化 newY2 = newY2*(maxY1 - minY1) + minY1; newY3 = (y3 - minY3)/(maxY3 - minY3); newY3 = newY3*(maxY1 - minY1) + minY1; % 画线 % 控制 axes 的大小和位置,注意是相对于figure的,范围为[0, 1] h1 = axes('position', [0.1 0.1 0.5 0.8]); plot(x, y1, 'k', x, newY2, 'r', x, newY3, 'ob--') ylabel('line1'); % 绘制另外两个空的坐标轴 h2 = axes('position', [0.65 0.1 0.005 0.8]); % 重复绘制,曲线颜色用白色,和figure背景色一致,看不出来即可 plot(x, y2, 'w') % 颜色,位置,曲线标签 set(h2, 'YColor', 'r', 'YAxisLocation', 'right', 'XTick', []) % 边界显示不清楚,所以画一条线 hold on limX2 = get(h2, 'Xlim'); limY2 = get(h2, 'Ylim'); plot([limX2(2), limX2(2)], limY2, 'r'); hold off % 取消边框 box off ylabel('line2'); % h3 = axes('position', [0.75 0.1 0.005 0.8]); plot(x, y3, 'w') set(h3, 'YColor', 'b', 'YAxisLocation', 'right', 'XTick', []) hold on limX3 = get(h3, 'Xlim'); limY3 = get(h3, 'Ylim'); plot([limX3(2), limX3(2)], limY3, 'b'); hold off box off ylabel('line3'); % figure背景设置成白色 set(gcf, 'color', 'white'); % 取消坐标轴的颜色,和figure统一 set(h1, 'color', 'none'); set(h2, 'color', 'none'); set(h3, 'color', 'none');



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3