温馨提示:本文翻译自stackoverflow.com,查看原文请点击:plot - Shading command produces different results in MATLAB and Octave
gnuplot graphics matlab octave plot

plot - 着色命令在MATLAB和Octave中产生不同的结果

发布于 2020-05-01 15:34:16

命令 shading facetedshading interp在MATLAB和Octave中产生不同的图形。

考虑以下代码:

[X, Y] = meshgrid(0:2, 0:2);
Z = magic(3);

figure;
colormap('jet');

subplot(1, 3 ,1);
imagesc(Z);
axis xy
yticklabels({'0', '1', '2'})
yticks(1:3)
xticklabels({'0', '1', '2'})
xticks(1:3)
title('imagesc(Z)');

subplot(1,3,2);
surf(X, Y, Z);
shading faceted;
view([0,0,1]);
yticks(0:3)
xticks(0:3)
title('surf(X, Y, Z); shading faceted;');

subplot(1,3,3);
surf(X, Y, Z);
shading interp;
view([0,0,1]);
yticks(0:3)
xticks(0:3)
title('surf(X, Y, Z); shading interp;');

这是MATLAB中的结果: 在此处输入图片说明

和八度产生的结果:

在此处输入图片说明

MATLAB会生成正确的图形,此八度图形有什么问题?

我们得到两个不同输出的原因是什么?view命令有问题吗?

编辑(错误报告后)

它已在Ocatve 6.1中修复:https ://hg.savannah.gnu.org/hgweb/octave/raw-file/11072ea6a16c/scripts/plot/appearance/view.m

查看更多

提问者
sci9
被浏览
96
Andrew Janke 2020-02-12 23:13

您的代码看起来正确。我可以在macOS的Octave 4.4和5.2中进行复制。

扔在一个xlabel('X Axis');电话澄清这是怎么回事。

这肯定看起来像Octave实现中的错误view看来X和Y轴已被交换。您能否在https://savannah.gnu.org/bugs/?group=octave上的Octave问题跟踪器中将其报告为错误