【问题标题】:Enforcing xmin = ymin in a MATLAB plot在 MATLAB 图中强制执行 xmin = ymin
【发布时间】:2018-05-22 01:03:27
【问题描述】:

如果不指定任何值,我如何编写代码来对齐绘图轴,以使 x 或 y 的最小轴值(如果未分配,MATLAB 将自动选择)现在是两个轴的最小值? 示例:如果 x 从 0 开始,y 从 5 开始,我现在强制它们都为 0。

【问题讨论】:

    标签: matlab plot axes


    【解决方案1】:

    您可以使用XLim and YLim 属性获取和设置Axes 对象的边界。这些属性各有两个值,下限和上限。第一个值是下限。例如,对于具有句柄 'ah' 的坐标区,x 轴下界为ah.XLim(1)

    您希望两个轴都从两个下限中的下限开始:

    ah = gca; % Get the current axes, you can use a handle you already have
    low = min(ah.XLim(1), ah.YLim(1));
    ah.XLim(1) = low;
    ah.YLim(1) = low;
    

    作为下面的@Wolfie cmets,还有xlimylim 函数来获取和设置XLimYLim 属性。我一直认为它们是多余的,因为它们并不能真正简化访问这些属性的过程。

    【讨论】:

    • 请注意,xlim(1)min(xlim),所以您可以只使用 low = min([xlim, ylim])xlimylim 不应用作变量名称,因为它们是用于获取和设置轴限制的内置函数名称(无需使用 getset),因为它们将用于我在此评论开头的low 定义。考虑到这一点,您的解决方案可以替换为xlim( [min([xlim, ylim]), max(xlim)] ); ylim( [min([xlim, ylim]), max(ylim)] )。读回来,我意识到我听起来居高临下,道歉,你的逻辑是合理的,变量名只是真正的问题!
    • @Wolfie:不过很好。谢谢! -- 我想你是在告诉我不要在深夜发布答案...... :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2019-11-20
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多