Matlab实现同步子图视角的方法详解

 更新时间:2022年06月06日 16:24:47   作者:slandarer  
这篇文章主要和大家分享三个可以Matlab中更简便实现同步子图视角的技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下

说来惭愧,在了解到这个更简单的方法之前,为了实现这个功能自己写了个工具函数,没发现有这么简单的实现方法,不过官网上的实现方法有点问题,我略微做出修改,这点会在之后被提到,以下给出实现子图同步旋转的三个例子:

实例一:双子图仅同步视角

实现这个功能依靠的是函数linkprop,看名字就是链接axes的某些属性,这里我们只需要链接两个坐标区域的'View'属性即可轻易实现同步视角:

% demo1.m
% @author: slandarer

[X,Y]=meshgrid(1:0.5:10,1:20);
Z=sin(X)+cos(Y);

% 坐标区域1绘图
ax1=subplot(1,2,1);
surf(X,Y,Z)
colormap(gca,summer)

% 坐标区域2绘图
ax2=subplot(1,2,2);
surf(X,Y,Z) 
colormap(gca,winter)

% 只改变视角不改变轴范围
linkprop([ax1,ax2],{'View'}); 

实例二:同步视角及坐标轴范围

在链接'View'属性的同时,再把'XLim''YLim''ZLim'属性同步起来就好(代码显示不全可左右滑动):

% demo2.m
% @author: slandarer

[X,Y]=meshgrid(1:0.5:10,1:20);
Z=sin(X)+cos(Y);

% 坐标区域1绘图
ax1=subplot(1,2,1);
surf(X,Y,Z)
colormap(gca,summer)

% 坐标区域2绘图
ax2=subplot(1,2,2);
surf(X,Y,Z) 
colormap(gca,winter)

% 只改变视角和轴范围
linkprop([ax1,ax2],{'View','XLim','YLim','ZLim'});

实例三:更多子图

通过sub2ind把子图矩阵存成一个子图行向量,然后继续调用linkprop函数即可(代码显示不全可左右滑动):

% demo3.m
% @author: slandarer

% 绘制6个图
M=2; 
N=3;

for m=1:M
    for n=1:N
        ax(1,sub2ind([M,N],m,n))=subplot(M,N,n+(m-1)*N);
        hold on;grid on
        scatter3(rand([5,1]),rand([5,1]),rand([5,1]),'filled')
    end
end

% 只改变视角不改变轴范围
linkprop(ax,{'View'});

注:MATHWORKS官网上给出的方案是通过链接'CameraPostition''CameraUpVector'两个属性实现的但是如果本身各个轴比例不相同就会出现下面的情况(因此还是直接设置'View'属性比较直接):

以上就是Matlab实现同步子图视角的方法详解的详细内容,更多关于Matlab同步子图视角的资料请关注脚本之家其它相关文章!

相关文章

  • C语言详解用char实现大小写字母的转换

    C语言详解用char实现大小写字母的转换

    这篇文章主要给大家介绍了关于C语言实现大小写字母转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 用C语言如何打印一个等腰三角形

    用C语言如何打印一个等腰三角形

    这篇文章主要介绍了用C语言如何打印一个等腰三角形,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C/C++使用socket实现判断ip是否能连通

    C/C++使用socket实现判断ip是否能连通

    这篇文章主要为大家详细介绍了C/C++如何使用socket实现判断ip是否能连通,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-07-07
  • 浅谈c++调用python链接的问题及解决方法

    浅谈c++调用python链接的问题及解决方法

    下面小编就为大家带来一篇浅谈c++调用python链接的问题及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • C++多态的实现机制深入理解

    C++多态的实现机制深入理解

    这篇文章主要介绍了C++多态的实现机制理解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • C++多重继承引发的重复调用问题与解决方法

    C++多重继承引发的重复调用问题与解决方法

    这篇文章主要介绍了C++多重继承引发的重复调用问题与解决方法,结合具体实例形式分析了C++多重调用中的重复调用问题及相应的解决方法,需要的朋友可以参考下
    2018-05-05
  • C++超详细讲解强制类型转换

    C++超详细讲解强制类型转换

    在C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast。这四个关键字都是用于强制类型转换的
    2022-05-05
  • 详解如何实现C++虚函数调用汇编代码

    详解如何实现C++虚函数调用汇编代码

    多态是C++中最重要的特性之一,对虚函数的调用在C++代码中是随处可见的,本篇文章我们详细探讨一下,感兴趣的朋友快来看看吧
    2021-11-11
  • 详解C++中的函数调用和下标以及成员访问运算符的重载

    详解C++中的函数调用和下标以及成员访问运算符的重载

    这篇文章主要介绍了详解C++中的函数调用和下标以及成员访问运算符,讲到了这些二元运算符使用的语法及重载,需要的朋友可以参考下
    2016-01-01
  • C语言仿QQ聊天界面抖动功能

    C语言仿QQ聊天界面抖动功能

    这篇文章主要为大家详细介绍了C语言仿QQ聊天界面抖动功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11

最新评论