matlab一个axes实现3个独立y轴,实现同时缩放

news/2024/10/18 16:46:07/

要实现同时缩放的功能,可以使用MATLAB的 linkprop 函数来链接三个axes的属性。这样,在缩放或平移其中一个axes时,其他两个也会相应地进行相同的操作。


function plot_with_3_yaxes(x1, y1, x2, y2, x3, y3)
    % 创建一个figure和三个axes
    figure;
    ax1 = axes;
    hold(ax1, 'on');
    ax2 = axes;
    hold(ax2, 'on');
    ax3 = axes;
    hold(ax3, 'on');
    
    % 绘制曲线
    plot(ax1, x1, y1, 'b');
    plot(ax2, x2, y2, 'r');
    plot(ax3, x3, y3, 'g');
    
    % 设置第一个y轴和标题
    ax1.YColor = 'b';
    ax1.Title.String = 'Plot 1';
    
    % 设置第二个y轴
    ax2.YColor = 'r';
    ax2.YAxisLocation = 'right';
    ax2.Color = 'none';
    
    % 设置第三个y轴
    ax3.YColor = 'g';
    ax3.YAxisLocation = 'right';
    ax3.Color = 'none';
    
    % 设置图例
    legend(ax1, 'Plot 1');
    legend(ax2, 'Plot 2');
    legend(ax3, 'Plot 3');
    
    % 设置整体坐标轴标签和标题
    xlabel('X');
    ylabel(ax1, 'Y1');
    ylabel(ax2, 'Y2');
    ylabel(ax3, 'Y3');
    title('Plot with 3 Y Axes');
    
    % 链接三个y轴
    linkaxes([ax1, ax2, ax3], 'x');
    
    % 链接缩放和平移操作
    ax_props = {'XLim', 'YLim', 'ZLim', 'CameraPosition', 'CameraTarget', 'CameraUpVector', 'CameraViewAngle', 'XTick', 'YTick', 'ZTick', 'XTickLabel', 'YTickLabel', 'ZTickLabel'};
    linkprop([ax1, ax2, ax3], ax_props);
end
 

在调用 linkaxes 函数链接axes的同时,添加了 linkprop 函数以链接其他的属性,以实现同时缩放的效果。

使用方法与之前相同:

 
x1 = [1, 2, 3, 4, 5];
y1 = [1, 4, 9, 16, 25];

x2 = [1, 2, 3, 4, 5];
y2 = [2, 4, 6, 8, 10];

x3 = [1, 2, 3, 4, 5];
y3 = [5, 4, 3, 2, 1];

plot_with_3_yaxes(x1, y1, x2, y2, x3, y3);
 

这样,当你在任一axes上进行缩放或平移操作时,其他两个axes也会同步进行操作。


http://www.ppmy.cn/news/746891.html

相关文章

el-form的rule无法校验(没有效果)的几个注意点

使用this.$refs[xxx]方式的朋友要注意el-form声明的ref名称 必须与xxx一致:rule “rule”, 我们可以在data(){retrun { }} 中定义rule, 也可以直接在el-form-item属性中定义, 特别是在动态表单中, 特别实用…

如何将风险应用加入白名单_我告诉你风险应用白名单怎么设置

我们以vivo手机为例,首先打开“i管家”App,然后点击左下方的“安全检测”按钮,等待安全检测完毕后会自动弹出风险选项,此时我们需要点击应用进入风险选项的详情页,接着点击页面右上角的“…”按钮,在弹出的…

Android 11 IP白名单功能

背景 最近做车载项目,有个需求是设置域名白名单,整体思路是增加一个接口,然后上层应用通过接口传域名到netd中,然后netd在进行DNS学习,最后将学习后的IP地址传到防火墙进行流量控制。这里就必须先讲一下netd相关知识。…

appium连接vivo手机,启动APP后就不动了--其它手机正常

appium连接vivo手机,启动APP后就不动了–其它手机正常 被这个问题卡了很久,终于找到了有效的解决办法。 报错:Could not proxy command to remote server. Original error: Error: socket hang up 解决方案: 在网上查了一下 com…

一键加速去不掉加锁的_vivo手机一键加速的时候,怎样可以不把当前的应用清除?...

vivo手机设置一键加速白名单,即一键加速时,不会结束该后台软件。vivo手机设置一键加速白名单方法:先调出快捷栏,然后按住需要设置白名单的软件向下拉,点击该软件上方的锁状图标,该软件即会加入白名单。具体操作步骤:1、先调出快捷栏2、按住需要设置白名单的软件向下拉3、…

获取Android手机系统当前界面Activity;(第三方app跳转华为,小米,oppo,vivo的自启动管理)

需求:第三方app跳转华为手机的受保护后台;小米手机的自启动管理;oppo手机的某个app的后台冻结;vivo手机的加速白名单; 执行这个指令 adb shell dumpsys activity top (要是出现adb用不了,error:unknown h…

android app加入白名单保活授权及引导用户操作

android app加入白名单保活授权及引导用户操作 工具类代码如下 import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.PowerManager; import andro…

手机号码白名单

手机号码白名单功能: 思路:在发送时与数据库白名单表做校验,为白名单号码无阻发送 缺点:如果一次性发送十几万号码,每个号码都要和白名单库做校验,速度极大降低 ,而且可以采用如果是超频&…