【问题标题】:matlab remove only top and right ticks with leaving box onmatlab 只删除顶部和右侧的勾号并留下框
【发布时间】:2013-03-21 17:03:33
【问题描述】:

在 Matlab 图中,我想只删除顶部和右侧轴的刻度,同时保持绘图框处于打开状态。

我知道如果我关闭绘图框,顶部和右侧的刻度就会消失。但是,这不是我想要的。换句话说,我只想在底部和左侧保留刻度,同时又想保持绘图框打开。

【问题讨论】:

  • 这是您根本无法做好的事情之一。你必须诉诸诡计。如果您试图通过链接的 x 轴和两侧的两个单独的 y 轴使两个轴相互连接,最简单的方法是将两个轴设置为 box off。然后将第二个轴的 x 轴移动到顶部,删除刻度和轴标签,它将很好地关闭图像。
  • 那行得通。谢谢!我无法在这里很好地编辑代码,但我将代码放在下面。图 lw = 2; x=0:5:10;绘图(x,x)a1 = gca; set(a1,'box','off','tickdir','out','xticklabel',{},'yticklabel',{},...'linewidth',lw,'Xtick',[0: 5:10],'ytick',[0:5:10]) 轴正方形 a2 = copyobj(a1,gcf); set(a2,'color','none','xaxislocation','top','yaxislocation','right','xtick',[],'ytick',[])

标签: matlab plot


【解决方案1】:

我的解决方法类似于@j_kubik 命题:

plot(1:10)
% get handle to current axes
a = gca;
% set box property to off and remove background color
set(a,'box','off','color','none')
% create new, empty axes with box but without ticks
b = axes('Position',get(a,'Position'),'box','on','xtick',[],'ytick',[]);
% set original axes as active
axes(a)
% link axes in case of zooming
linkaxes([a b])

【讨论】:

  • 我不知道链接轴。这是一个改进。谢谢!!
  • 更新:对于Matlab 2014及更高版本的用户,将linkaxes替换为linkprop
  • @CarlWitthoft 我认为linkaxes 在 2014 年及以后仍然有效。调用linkprop([a b])会报错
  • @Delyle 是的,它仍然有效,但正如帮助页面所说,“请参阅 linkprop 函数以获得更高级的功能,这些功能允许您链接任何图形对象上的对象属性”。是的,arg 列表略有不同(duh):-)
【解决方案2】:

您可以使用box off 删除刻度,然后使用绘图将框拉回来。例如:

figure
hold on
box off
plot(1:10)
plot([1,10],[10, 10],'k')
plot([10,10],[1,10],'k')

【讨论】:

  • 感谢您的建议。我试过了。但是,它并没有我希望的那么好。当我将线宽设置为较粗时,例如 3,则在顶部和右侧绘制的线(用绘图绘制的线)看起来比轴(左侧和底部的线)更细,即使我对绘制的框使用相同的线宽绘图和坐标轴。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-28
  • 2018-03-10
  • 2011-06-22
  • 2012-02-25
  • 2020-11-12
  • 1970-01-01
相关资源
最近更新 更多