我正在尝试将标签添加到具有许多条形的条形图中。复杂的因素是我在一个循环中执行此操作(对于数百个条形图)并且希望让 Matlab 自动进行标记。本质上,我只想标记高度高于某个阈值的峰。希望让这更容易的一件事是,我只是想用它的 x 值标记条。
这是我希望如何放置标签的说明:
如果您仍然可以访问原始数据,并假设您想要标记高于阈值的每个点,您应该能够通过以下方式执行此操作:
text
(x, y, num2str(x))
如果您想用单个标签标记连续值都高于阈值的峰值(比如图像上大约 115?),您可以添加一些稍微复杂的逻辑来将这些峰值组合在一起......如果那是你想要的,我们可以帮助您解决这个问题。
正如@Dougal 所提到的,该text
功能就是您想要的。但是,不需要循环:
%# generate some data
y = poissrnd(5,20,1);
x = 1:20;
%# find where the data is above the threshold
bigIdx = y>6;
%# create a bar plot
bar(x,y)
%# add the text. The alignment setting ensures that the text
%# is directly above the bar. I add 1 here as an y-offset,
%# the ideal value may depend on your data
text(x(bigIdx),y(bigIdx)+1,num2str(x(bigIdx)),'horizontalAlignment','center')
%# you may need to make sure that the y-limit is high enough
%# so that the text is visible
ylim([0 max(y)+2])