如何在Matlab中同时关闭imagesc和axis?

时间:2016-10-18 19:26:43

标签: matlab graphics debian matlab-figure

我想首先阻止imagesc绘制任何装饰(方框,轴,...),因为Matlab图形中存在错误,我认为它们主要是文本元素周围的人工制品。 将imagesc之前和之后的所有图形归零是不够的,因为人工制品等文字"翻转"刚刚调用imagesc时发生。 伪代码想要

imagesc(x,y,C, 'axis', 'tight', 'axis', 'off', ...)

线程的重点是关于如何重现这些文物,但是如何防止它们。 以下是尝试描述如何获取错误,但这不是该主题的重点。

最小代码的伪代码

重现人工制品的步骤

  1. 绘制PolarPlot或任何具有文本的内容。
  2. 在其上绘制父图,使轴穿过任何文本元素。
  3. 您需要使用轴与文本元素交叉连接的代码才能重现图1

    f = figure; 
    hax = axes(f); 
    
    zeroFigureDecorations(hax); 
    imagesc(x,y,C, 'Parent', hax)
    zeroFigureDecorations(hax); 
    
    function zeroFigureDecorations(ax)
    axis(ax, 'tight');
    set(ax, 'yTickLabel', []);
    set(ax, 'xTickLabel', []);
    set(ax, 'Ticklength', [0 0]); % http://stackoverflow.com/a/15529630/54964
    colormap(ax, gray(1024));
    box(ax, 'off');
    axis(ax, 'off');
    end
    

    图。 1类似情况的示例,其中调用imagesc创建外轴导致文本"翻转"

    enter image description here

    MATLAB:2016b
    操作系统:Debian 8.5
    硬件:华硕Zenbook UX303UA
    图形:英特尔

1 个答案:

答案 0 :(得分:-1)

无法同时执行imagescaxis off。 但是,您可以修改imagesc代码来实现此目的,但您不会获得MathWorks对修改版本的支持。 要避免图形工件,请尝试使用不同的图形渲染器: painters opengl ,... 您还可以尝试启动标志-softwareopengl