在区域图中指出填充区域的名称 - Matlab?

时间:2015-06-17 12:52:13

标签: matlab matlab-figure

在这个区域中很难通过查看图例来识别许多填充区域中的每一个(它就像16!)。

所以,我想知道是否有办法在图中放置某种标签(可能带有指针?),清楚地标识每个填充区域?

谢谢!

enter image description here

2 个答案:

答案 0 :(得分:3)

以下是使用annotation objectstextarrow选项的替代选项,该选项会显示文本和箭头。这对于指向文本会隐藏数据的狭窄区域非常有用。

例如:

clear
clc
close all

x = 1:128;

%// Plot data
figure
hAxes1 = axes('Position',[.1 .1 .6 .8]);
image(x.');
axis off
colormap(jet(128))

%// Define labels
ColorLabels = {'Red';'Orange';'Green';'Blue';'More blue'};

%// Define starting and ending x and y positions
xstart = .8;
xend = .6;
ystart = linspace(.1,.8,numel(ColorLabels));
yend = linspace(.15,.8,numel(ColorLabels));
for k = 1:numel(ColorLabels)

    annotation('textarrow', [xstart xend],[ystart(k) yend(k)],...
           'String', ColorLabels{k});    
end

给出以下输出:

enter image description here

答案 1 :(得分:1)

可能有一种我不知道的内置方式,但我发现低级text函数通常是这类事情的最佳答案。

这需要一些内务管理 - 你必须提供x和y坐标以及要打印的文字,例如

text(20, 400, 'Region 4')

会将标签置于(20,400)的中心(请参阅docs中的'VerticalAlignment''HorizontalAlignment'名称 - 值对进行微调),所以对我来说通常比​​较好写一个小包装器,它将从数据中解决它们。当然,这通常特定于您正在使用的特定类型的数据,并且很少推广到区域图的其他用途,但这很可能是为什么还没有通用标记功能(我知道)。 / p>