1

Is it possible to mark a certain domain beneath the x-axis in matlab plot?

Example:

enter image description here

4

1 回答 1

2

你可以试试annotations。您可能需要进行一些额外的实验,但这里有:

跨越整个 x 轴的条形将是:

x_ends = [0.131 0.908];

在您的情况下,x 轴的长度是2.5(从 0 到 2.5)。这意味着一个的长度dx是:

dx = diff(x_ends) / 2.5;

如果您想要一个从0.3到的条形,0.5则长度将为:

bar_length = dx * (0.5 - 0.3);

由于您希望栏从 0.3 开始,因此您必须将其添加到您的坐标中:

x_bar =  [0.3 0.5]*dx+x_ends(1);
bar((1:100)/50,floor(rand(1,100)*10));
annotation('line',x_bar,[.1,.1],'Color','r','LineWidth',3);

这会产生:

在此处输入图像描述

当然,如果你改变轴或类似的东西,你将不得不改变上面的一些东西。

要获得额外的勾号0.3

ax_tick = get(gca,'xtick')
set(gca, 'xtick', sort([ax_tick 0.3]))

祝你好运!

于 2013-06-14T08:54:29.847 回答