【问题标题】:Plotting contours without transitions in matlab在matlab中绘制没有过渡的轮廓
【发布时间】:2014-05-02 12:59:09
【问题描述】:

假设我有三个矩阵 X、Y、Z。

X 和 Y 使用 meshgrid 创建并表示二维网格。 Z 包含此网格的值,可以是 0、1 或 2。

这些颜色中的每一种都代表一种颜色(红色、绿色和蓝色)。我想使用这些颜色作为背景绘制二维网格。目前我正在使用contourf

contourf(X, Y, Z, [0 1 2]);
colormap(bgcolors(1:3,:));

条目 1-3 包含红色、绿色和蓝色的颜色信息。结果如下所示:

问题是图顶部的绿色小区域。在该区域中没有 Z 值是绿色 (1),但左侧的值是蓝色 (2),右侧是红色 (0)。 contourf 命令改为使用颜色图来绘制红色和蓝色区域之间的过渡。由于绿色位于颜色图中的这些值之间,因此过渡以绿色绘制。

有没有更好的命令来绘制这样的数字?我只是想要一个颜色取决于 Z 值的彩色背景。

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    如果您的网格是规则的(即类似于meshgrid 的输出),您还可以使用imageimagesc,或者,如果图像处理工具箱可用,还可以使用imshow 以及匹配的色标。

    imagesc(Z)
    

    【讨论】:

    • 谢谢,这行得通(虽然边缘不如上面那么好)。
    • 没错,您只看到原始数据。但是,为您提供更平滑轮廓的插值本质上也是为您添加不需要的中间绿色条带的原因...
    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多