【问题标题】:Matlab: plotting a countour plot with smooth shadingMatlab:绘制平滑阴影的等高线图
【发布时间】:2013-09-20 17:33:09
【问题描述】:

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 上。

这是他们情节中的图片:

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    从 PDF 来看,tt 似乎在值 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))
    

    您也可以使用surf 代替imagesc

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

    【讨论】:

    • 非常感谢。为什么要切换绘图代码?一种风格更好或更有效吗?
    • 如果只涉及均匀间隔的二维网格,我更喜欢imagesc 而不是surf。在imagesc 中,您不需要指定view 或行属性,但XY 被假定为均匀间隔......我不知道一个是否比另一个更有效。如果您愿意,我可以将其写回surf
    • 不管是哪一个。我只是不知道是否更好用。
    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2021-10-27
    • 2019-03-22
    相关资源
    最近更新 更多