【问题标题】:colormap/datatip issue in Matlab figureMatlab图中的颜色图/数据提示问题
【发布时间】: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


【解决方案1】:

这一行可以防止你上面提到的行为:

set(0, 'DefaultFigureRenderer', 'opengl');

它为所有新图形设置渲染器。 您可以将该行放在 startup.m 文件中。

要了解有关启动文件的更多信息,请访问:

http://www.mathworks.com/help/matlab/ref/startup.html

(如果该文件不存在,您基本上会生成该文件,并在 Matlab 启动时将您想要运行的代码放在那里)。

【讨论】:

    猜你喜欢
    • 2018-03-23
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2023-04-04
    • 2018-04-27
    • 1970-01-01
    相关资源
    最近更新 更多