matlab标记x轴下方的某个域

时间:2013-06-14 08:46:57

标签: matlab plot axis

是否可以在matlab图中标记x轴下的某个域?

示例:

enter image description here

1 个答案:

答案 0 :(得分:2)

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

跨越整个x轴的条形码为:

x_ends = [0.131 0.908];

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

dx = diff(x_ends) / 2.5;

如果您想要一个从0.30.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);

这会产生:

enter image description here

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

要在0.3获得额外的价格:

ax_tick = get(gca,'xtick')
set(gca, 'xtick', sort([ax_tick 0.3]))
祝你好运!