在这个区域中很难通过查看图例来识别许多填充区域中的每一个(它就像16!)。
所以,我想知道是否有办法在图中放置某种标签(可能带有指针?),清楚地标识每个填充区域?
谢谢!
答案 0 :(得分:3)
以下是使用annotation objects和textarrow
选项的替代选项,该选项会显示文本和箭头。这对于指向文本会隐藏数据的狭窄区域非常有用。
例如:
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
给出以下输出:
答案 1 :(得分:1)
可能有一种我不知道的内置方式,但我发现低级text
函数通常是这类事情的最佳答案。
这需要一些内务管理 - 你必须提供x和y坐标以及要打印的文字,例如
text(20, 400, 'Region 4')
会将标签置于(20,400)的中心(请参阅docs中的'VerticalAlignment'
和'HorizontalAlignment'
名称 - 值对进行微调),所以对我来说通常比较好写一个小包装器,它将从数据中解决它们。当然,这通常特定于您正在使用的特定类型的数据,并且很少推广到区域图的其他用途,但这很可能是为什么还没有通用标记功能(我知道)。 / p>