gpt4 book ai didi

matlab - 轮廓中缺少蜱虫

转载 作者:行者123 更新时间:2023-12-04 08:26:57 24 4
gpt4 key购买 nike

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

figure1=figure(1)
axes1 = axes('Parent',figure1,'YScale','log','XScale','log');
grid(axes1,'on');
hold(axes1,'on');
[C,h]=contourf(lamx(2:NKX+1),lamz(2:NKZ+1),phi2d(2:NKX+1,2:NKZ+1)',[10],'LineColor','none');
clabel(C,h);
axis tight;
axis([lamx(end) max(lamx) lamz(end) max(lamz)])
xlabel('\lambda_x','Fontsize',20);
ylab=ylabel('\lambda_z','Fontsize',20);
set(gca,'XTick',0.1:0.1:1)
grid on
set(gcf, 'PaperPositionMode','auto');
set(ylab, 'Units', 'Normalized', 'Position', [-0.1, 0.5, 0]);
set(gca,'linewidth',1.5,'FontSize',16)
colormap(flipud(gray(256)));
colorbar;
print('-dpng','-opengl','-r1200','2dspec')
enter image description here
如何绘制刻度线?

最佳答案

您示例中的刻度线被 Contour 遮住了对象本身。 Axes的顺序元素是相对于其中的对象绘制的,由 Axes 控制 Layer 属性(property)。
此属性的默认值为 bottom这意味着在轴上绘制的填充轮廓之类的任何内容都将绘制在刻度之上,而您将无法看到它们。 contourf函数显然知道这对于会掩盖整个刻度的图来说不是一个有用的默认值,因为它通常会将属性更改为 top当你调用它时——但只有当 Axes NextPlot设置为 replace .调用 hold on你也事业contourf不理会那处房产,所以它最终停留在 bottom .
在您的示例中,您可以通过以下两种方式之一处理此问题。

  • 正如目前所写,hold(axes1,'on'); 没有故意影响。行,因为你只添加了一个情节。因此,如果您的完整代码不依赖它,您可以删除该行。除此以外,
  • 设置 Layer属性(property)到top从创建轴的一开始:
    axes1 = axes('Parent',figure1,'YScale','log','XScale','log','Layer','top');
  • 关于matlab - 轮廓中缺少蜱虫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65214209/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com