如何在Matlab中同时进行imagesc和axis关闭?
我想阻止imagesc绘制任何装饰框、轴。。。首先是因为Matlab图形中存在缺陷,我认为这些缺陷主要围绕文本元素。 仅将imagesc前后的所有图形归零是不够的,因为调用imagesc时会发生伪影等文本翻转。 通缉伪码如何在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(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您发布的代码不会生成与您发布的图像类似的图像。