Matlab:绘制具有平滑着色的等高线图

时间:2013-09-20 17:33:10

标签: matlab plot

this pdf的第61页,有图10.4。我试图复制右下角的情节。但是,在他们的代码中,他们使用的contourplot不在Matlab R2013a中。

我尝试过使用contourcontourfsurfsurfc等,但没有重复其结果。

%This plots the stability region for RK-4

[X, Y] = meshgrid(-3:.1:1, -3:.1:3);
Mu = X + i*Y;
R = 1 + Mu + .5*Mu.^2 + (1/6)*Mu.^3 + (1/24)*Mu.^4;
Rhat = abs(R);
%contour(X, Y, Rhat)
%contourf(X, Y, Rhat)
%surfc(X, Y, Rhat)
surf(X, Y, Rhat)

是否有一个在其代码中模仿coutourplot的绘图命令?我猜他们使用了不同版本的Matlab,这个命令可用。我在R2013a。

这是他们情节中的图像:

enter image description here

1 个答案:

答案 0 :(得分:2)

从PDF来看,这似乎被截断为值1.所以这里看起来很相似:

[X, Y] = meshgrid(-3:.01:1, -3:.01:3);
Mu = X + i*Y;
R = 1 + Mu + .5*Mu.^2 + (1/6)*Mu.^3 + (1/24)*Mu.^4;
Rhat = abs(R);
Rhat = Rhat.*(Rhat<1);  %# here I truncate
imagesc([min(X(:)) max(X(:))],[min(Y(:)) max(Y(:))], Rhat)
colormap(flipud(gray))

您也可以使用imagesc代替surf

surf(X, Y, Rhat,'LineStyle','none')
view(0, 90);
colormap(flipud(gray))
xlim([-3 0.5]);
ylim([-3.2 3.2]);

enter image description here