在轴上反转Y轴

时间:2016-03-22 13:43:47

标签: matlab matlab-figure

我有一个GUI窗口,我有一个轴框,我想在使用绘图功能时在此轴1框上反转Y轴方向。当我尝试使用时,让我们说:

set(axes1,'YDir','reverse');

我收到以下错误

  

使用matlab.graphics.chart.primitive.Line / set
时出错   Line类没有YDir属性。

当我检查这个轴的属性时,我得到了

AlignVertexCenters: 'off'
            Annotation: [1x1 matlab.graphics.eventdata.Annotation]
          BeingDeleted: 'off'
            BusyAction: 'queue'
         ButtonDownFcn: ''
              Children: [0x0 GraphicsPlaceholder]
              Clipping: 'on'
                 Color: [1 0 0]
             CreateFcn: ''
             DeleteFcn: ''
           DisplayName: ''
      HandleVisibility: 'on'
               HitTest: 'on'
         Interruptible: 'on'
              LineJoin: 'round'
             LineStyle: '-'
             LineWidth: 1
                Marker: 'none'
       MarkerEdgeColor: 'auto'
       MarkerFaceColor: 'none'
            MarkerSize: 6
                Parent: [1x1 Axes]
         PickableParts: 'visible'
              Selected: 'off'
    SelectionHighlight: 'on'
                   Tag: ''
                  Type: 'line'
         UIContextMenu: [0x0 GraphicsPlaceholder]
              UserData: []
               Visible: 'on'
                 XData: [1x3937 double]
             XDataMode: 'manual'
           XDataSource: ''
                 YData: [1x3937 double]
           YDataSource: ''
                 ZData: [1x0 double]
           ZDataSource: ''

所以我尝试将属性检查器上的YDir从正常更改为反向,但它不起作用。 我尝试过使用flipud,它只是翻转了行,而不是Y轴上的值。

1 个答案:

答案 0 :(得分:2)

您正在调用的内容axes1实际上是line个对象。您可以通过获取对象的Type属性轻松地进行检查。

get(axes1, 'Type')

% Or in newer versions of MATLAB
class(axes1)

您需要在其父轴上设置YDir。我们可以使用ancestor函数轻松获得该功能。

hax = ancestor(axes1, 'axes');
set(hax, 'YDir', 'reverse')

或者更简单地针对您的具体情况:

set(axes1.Parent, 'YDir', 'reverse')

将来,请仔细阅读错误消息的整个内容。这里非常明确地说你的命令不起作用,因为它是一条线。