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

如何在Matlab中同时进行imagesc和axis关闭?,matlab,graphics,debian,matlab-figure,Matlab,Graphics,Debian,Matlab Figure,我想阻止imagesc绘制任何装饰框、轴。。。首先是因为Matlab图形中存在缺陷,我认为这些缺陷主要围绕文本元素。 仅将imagesc前后的所有图形归零是不够的,因为调用imagesc时会发生伪影等文本翻转。 通缉伪码 imagesc(x,y,C, 'axis', 'tight', 'axis', 'off', ...) 这条线索的重点不在于你如何复制这些文物,而在于你如何防止它们。 下面是试图描述如何得到这个bug,但这不是本线程的重点 最小码的伪码 复制人工制品的步骤 打印PolarPl

我想阻止imagesc绘制任何装饰框、轴。。。首先是因为Matlab图形中存在缺陷,我认为这些缺陷主要围绕文本元素。 仅将imagesc前后的所有图形归零是不够的,因为调用imagesc时会发生伪影等文本翻转。 通缉伪码

imagesc(x,y,C, 'axis', 'tight', 'axis', 'off', ...)
这条线索的重点不在于你如何复制这些文物,而在于你如何防止它们。 下面是试图描述如何得到这个bug,但这不是本线程的重点

最小码的伪码 复制人工制品的步骤

打印PolarPlot或任何具有文本的内容。 在其顶部绘制父图,使轴穿过任何文本元素。 您需要将交叉文本元素与axis连接以再现图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 操作系统:Debian8.5 硬件:华硕Zenbook UX303UA 图形:英特尔不可能同时关闭imagesc和axis。 但是,您可以修改imagesc代码来实现这一点,但修改后的版本将无法获得MathWorks支持。 为了避免图形瑕疵,请尝试不同的图形渲染器:画师、opengl等等。。。
您还可以尝试启动标志-softwareopengl

不,这是轴的属性,而不是imagesc生成的图像对象,因此imagesc将忽略所有这些参数。我不明白为什么不能只做imagescx,y,C;轴断开;我不理解你所说的文本转换。@rayryeng我想他指的是在调用imagesc之前关闭axis是由imagesc撤消的,为什么它们需要一起运行?这最好不是另一个XY问题。@Masi您发布的代码不会生成与您发布的图像类似的图像。