我想首先阻止imagesc
绘制任何装饰(方框,轴,...),因为Matlab图形中存在错误,我认为它们主要是文本元素周围的人工制品。
将imagesc
之前和之后的所有图形归零是不够的,因为人工制品等文字"翻转"刚刚调用imagesc
时发生。
伪代码想要
imagesc(x,y,C, 'axis', 'tight', 'axis', 'off', ...)
线程的重点是不关于如何重现这些文物,但是如何防止它们。 以下是尝试描述如何获取错误,但这不是该主题的重点。
重现人工制品的步骤
您需要使用轴与文本元素交叉连接的代码才能重现图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
创建外轴导致文本"翻转"
MATLAB:2016b
操作系统:Debian 8.5
硬件:华硕Zenbook UX303UA
图形:英特尔
答案 0 :(得分:-1)
无法同时执行imagesc
和axis off
。
但是,您可以修改imagesc代码来实现此目的,但您不会获得MathWorks对修改版本的支持。
要避免图形工件,请尝试使用不同的图形渲染器: painters , opengl ,...
您还可以尝试启动标志-softwareopengl
。