Matlab - 用set()更新caxis的限制

时间:2018-01-05 12:43:47

标签: matlab colorbar

figure
surf(peaks)

colorbar;
h = caxis;

我想更新caxis的限制。我知道这可以通过caxis([cmin cmax])来完成。但假设我有多个数字,这只能通过设置当前数字来实现。

根据MATLAB's Documentation,属性名称为limits,但set(h, 'limits', [-1 1])会引发错误('无效或已删除的对象')。

2 个答案:

答案 0 :(得分:2)

如文档中的一个示例所示,您要在此处执行的操作是使用target函数的caxis输入。 limits是输入参数,而不是可与set一起使用的属性。

然后你的例子变成:

figure;
surf(peaks);
h = gca;
colorbar;
caxis(h,[-1 1]);

或者,如果您在设置限制之前创建许多图表,

figure;
h = axes;
surf(peaks);
colorbar;
caxis(h,[-1 1]);

答案 1 :(得分:1)

根据官方文档,

limits是一个包含最小值和最大值的双元素向量,它不能用作属性名称:

  

形式[cmin cmax]的载体

如果您希望同时为所有现有数字实现此目标,您可以找到所有现有轴并对所有轴应用相同的限制:

% Before Matlab R2014b, 0 must be used instead of groot!
all_axes = findall(groot,'Type','axes');
caxis(all_axes,[-10 10]);