Plot 如何在2D中绘制3D图形,颜色为倍频程?

Plot 如何在2D中绘制3D图形,颜色为倍频程?,plot,octave,Plot,Octave,我有一个函数z=f(x,y),我想用倍频程来绘制它,但我不想像图中那样用3d来绘制 octave:1> x=(1:300); octave:2> y=(1:300); octave:3> [xx,yy]=meshgrid(x,y); octave:4> A=sin(xx/100).*yy; octave:5> mesh(x,y,A) 而是在2d中使用颜色作为z值,就像使用gnuplot指令得到的一样 gnuplot> plot 'a.txt' matrix

我有一个函数z=f(x,y),我想用倍频程来绘制它,但我不想像图中那样用3d来绘制

octave:1> x=(1:300);
octave:2> y=(1:300);
octave:3> [xx,yy]=meshgrid(x,y);
octave:4> A=sin(xx/100).*yy;
octave:5> mesh(x,y,A)
而是在2d中使用颜色作为z值,就像使用gnuplot指令得到的一样

gnuplot> plot 'a.txt' matrix w image
如果我将矩阵A保存在文件A.txt中。我找到的最接近的命令是contourf,但是如果您尝试它,您可以看到

octave:7> contourf(xx,yy,A)
结果远非最佳。。。有什么建议吗

谢谢

将使用颜色绘制“z”值的矩阵:

> imagesc(x, y, A)
contourf
相比,这将垂直反转,但很容易修复:

> imagesc(x, flipud(y), flipud(A))
在您的示例中,您甚至不需要提供变量x和y:

> imagesc(A)
> imagesc(flipud(A))
将使用颜色绘制“z”值的矩阵:

> imagesc(x, y, A)
contourf
相比,这将垂直反转,但很容易修复:

> imagesc(x, flipud(y), flipud(A))
在您的示例中,您甚至不需要提供变量x和y:

> imagesc(A)
> imagesc(flipud(A))

如果你对等高线满意,那么
等高线(xx,yy,A)
有什么问题?如果你对等高线满意,或者
imshow(A)
然后乱搞
彩色地图有什么问题?如果你对等高线满意或者
imshow(A)
有什么问题
然后乱搞
彩色地图