【发布时间】:2015-02-11 13:29:36
【问题描述】:
我运行这段代码
A = uint8( ones( 200 ) );
a = [ A * 0 A * 1; ...
A * 2 A * 3 ];
color_map = [ 0 0 0; ...
0.3 0.3 0.3; ...
0.9 0.3 0.1; ...
1 1 1; ...
zeros( 252, 3 ) ];
h = image( a );
colormap( color_map );
然后,我使用数据提示功能在图中选择一个点。这使得图中的颜色发生了变化。它们仍然具有相同的索引和 RBG 值,但它们的颜色不同。然后,我删除了数据提示,颜色恢复到原来的颜色。
使用,
set(gcf, 'Renderer', 'opengl')
使问题消失,但我想知道是否有办法避免这样做?我正在使用 MATLAB R2013b。
【问题讨论】:
-
这很奇怪。可能没有帮助,但我发现如果您定义最后没有零的 color_map,则使用数据提示时颜色不会改变。
color_map2 = [0 0 0;.3 .3 .3;.9 .3 .1;1 1 1]; h = image(a);colormap(color_map2); -
这是一些有趣的行为。感谢您的调查!
-
当我尝试你的代码时,2015a 中没有颜色变化是值得的。 Mathworks 在 2014b 更新了图形系统。所以 1 答案可能是更新 Matlab。
-
@Matt That,或者强制旧版本使用
feature('usehg2',1)使用新的图形引擎,或者使用-hgVersion 2命令行选项运行MATLAB,按照this UndocumentedMatlab post。 -
看起来 datatip 对于 R2017a 来说已经过时了。我试着查了一下,所有的文档/问题都是旧的。甚至
doc datatip也会出现一个显示datatip is obsolete的窗口,仅供参考。
标签: matlab matlab-figure