【问题标题】:Matlab: How to color single cell of a surf plotMatlab:如何为冲浪图的单个单元格着色
【发布时间】:2014-06-10 13:52:34
【问题描述】:

我正在尝试根据 Z 函数值区分冲浪图的单个单元格的颜色,特别是: X、Y 是 (nxm) 矩阵并定义一个曲面; Z 是一个 one(nxm),它有一些特定的点设置为 3 或 4 或 5

我正在尝试制作一个冲浪图,其中具有 3,4 或 5 值的单个网格单元的颜色与所有其他表面网格单元的颜色不同。

这是我得到的代码和图像(在这种特定情况下,只有 1 个 Z 点的值 =3):

figure;surf(X,Y,Z)

在这个具体的例子中,我的目标是将与峰值对应的网格单元格着色为红色。有没有办法获得它?

提前致谢

【问题讨论】:

  • 关键是使用颜色图我仍然没有得到具有峰值颜色的网格单元,例如红色。
  • 也许您需要更改颜色图中的位数?而且,你有没有在高峰不在边缘时尝试过?请记住,具有值的是顶点而不是面,然后将值签名到该顶点旁边(之后)的面。因此,如果它在最后,您将看不到颜色,因为它会离开您的表面。

标签: matlab plot matlab-figure geometry-surface


【解决方案1】:

如 cmets 中所述,颜色图就是答案。困难的部分是正确设置它。诀窍是使颜色图比您需要的大,例如 10x3,在颜色图中制作一些箱,然后缩放 Z 以适应这些箱。例如:

cmap(1, 1) = [0 0 0];
cmap(2:4, 1) = [0 0 1];
cmap(5:7, 1) = [0 1 0];
cmap(8:10, 1) = [1 0 0];
colormap(cmap);

这会生成颜色图箱,您必须将 Z 值放入其中。您需要编写 Z 值转换代码。您需要编写一些东西,将 Z 的任何元素(例如 5)变成 10。

我已经使用图像解决了类似的问题,因此如果您与我合作,我们可以为您提供准确的答案。

【讨论】:

    【解决方案2】:

    只是为了确定

    colormap(jet) 
    

    在这里不工作? 我这样做的方法之一是在 GUI 中,您可以手动编辑颜色图中的颜色图值。

    然后,只需打印出颜色图

    cmap = colormap
    

    然后这些值可以在你的函数中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-13
      • 2013-04-09
      • 2013-03-14
      • 1970-01-01
      • 2019-08-18
      • 2019-10-21
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多