使用不同的颜色进行文本绘图注释

时间:2017-02-06 10:19:58

标签: octave

我有一个几乎没有像素的图像图,我想用每个像素的值注释。由于常规色彩图中的颜色各不相同,因此我无法为所有注释确定固定颜色,但希望改变颜色。

x=1:3;
y=1:3;
m(y, x) = x .* y' * 6;
image(m);
xi = repmat(x, 3, 1);
yi = repmat(y', 1, 3);
text(xi, yi, "label");

我当然可以使用

设置颜色
text(xi, yi, "label", "color", "white");

而不是"white"我尝试了两个3D矩阵

clabels = zeros(3, 3, 3);
clabels(:, :, 2) = 0.75; % for medium green, RGB = [0 192 0];

和细胞矩阵

clabels = {};
clabels(y, x) = [0 0.75 0];

在使用text(xi, yi, "label", color, clabels)的两种情况下都让我产生了

  

错误:颜色属性的值无效"颜色"

有没有办法为color属性创建类似矩阵的值?或者我是否需要为我想要注释的每种颜色创建text

1 个答案:

答案 0 :(得分:2)

您可以使用{'Property'}, {values}格式一次指定所有文本对象的颜色。不幸的是,您无法在构造函数中直接执行此操作,但您可以使用textset返回的文本对象数组执行操作。

t = text(xi, yi, 'label');

% Create a cell array where each cell is a different RGB color
colors = arrayfun(@(x)rand(1,3), t, 'UniformOutput', false);

set(t, {'Color'}, colors)