Matlab contourf中缺少蜱虫

Matlab contourf中缺少蜱虫,matlab,matlab-figure,Matlab,Matlab Figure,我想以对数值绘制刻度(没有标签,只有刻度)。出于某种原因,以下代码没有绘制它们(set(gca,'XTick')不做任何事情): 如何绘制记号?您的示例中的记号被轮廓对象本身遮挡。轴元素相对于其中的对象绘制的顺序由轴属性控制 此属性的默认值为bottom,这意味着在轴中绘制的任何填充轮廓都将绘制在刻度的顶部,您将无法看到它们。contourf函数显然知道,这对于完全模糊刻度的绘图来说不是一个有用的默认值,因为调用它时,它通常会将属性更改为top,但只有当轴下一个绘图设置为替换时。通过调用hol

我想以对数值绘制刻度(没有标签,只有刻度)。出于某种原因,以下代码没有绘制它们(set(gca,'XTick')不做任何事情):


如何绘制记号?

您的示例中的记号被
轮廓
对象本身遮挡。
元素相对于其中的对象绘制的顺序由
属性控制

此属性的默认值为
bottom
,这意味着在轴中绘制的任何填充轮廓都将绘制在刻度的顶部,您将无法看到它们。
contourf
函数显然知道,这对于完全模糊刻度的绘图来说不是一个有用的默认值,因为调用它时,它通常会将属性更改为
top
,但只有当
下一个绘图
设置为
替换
时。通过调用
hold on
也会导致
tourtf
不使用该属性,因此它最终停留在
底部

在您的示例中,您可以通过以下两种方式之一处理此问题

  • 正如目前所写的,
    hold(axes1,'on')并没有有意的效果行,因为您只添加了一个绘图。因此,如果您的完整代码不依赖该行,您可以删除该行。否则,

  • 在创建轴时,从一开始就将
    图层
    属性设置为
    顶部

    axes1 = axes('Parent',figure1,'YScale','log','XScale','log','Layer','top');
    

  • 很有效,非常感谢!如果我想在图的顶部绘图呢?等等,情节(无论什么)似乎不起作用,它以什么方式不起作用?如果
    Layer
    设置为
    top
    ,则即使轴上有多个绘图,刻度也应保持在顶部。是的,我没有参考刻度。我的意思是,我不允许在这条曲线的上方绘制另一条曲线,我想这可能是因为我在滴答声上遇到了同样的问题,也许我没有正确设置情节优先级这听起来像是一个完全独立的问题,如果你能把它简化成一个合适的最小的例子,它可能会成为一个新问题的主题。从你描述它的方式很难说,虽然“不允许”是相当神秘和模糊的。
    axes1 = axes('Parent',figure1,'YScale','log','XScale','log','Layer','top');