【发布时间】:2018-09-21 10:46:37
【问题描述】:
我有以下跨越 [x,y] 域的示例数据集:
test=[2.58,2.2, 0.00023, 0.000163, 0.000123, 0.000164, 0.00022, 2.18, 2.56,2.56;
2.46,2.17, 0.00021, 0.000150, 0.000119, 0.000141, 0.00020, 2.16, 2.43, 2.56;
2.35,2.14, 0.00019, 0.000143, 0.000101, 0.000136, 0.00018, 2.14, 2.36,2.56;
2.23,2.12, 0.000184, 0.000138, 0.000095, 0.000124, 0.000166, 2.12, 2.24,2.56;
2.2,2.11, 0.000177, 0.000141, 0.00009, 0.000101, 0.000156, 2.09, 2.18, 2.56;
2.25,2.1, 0.000176, 0.000168, 0.00008, 0.000095, 0.000164, 2.08, 2.26, 2.56;
2.32,2.13, 0.000183, 0.000178, 0.000086, 0.000104, 0.000177, 2.11, 2.35,2.56;
2.44, 2.15, 0.00019, 0.000191, 0.000099, 0.000112, 0.000189, 2.13, 2.44,2.56;
2.56, 2.17,0.00021, 0.000199, 0.000101, 0.000132, 0.000199, 2.15, 2.52,2.56;
2.59, 2.19, 0.00022, 0.000209, 0.000118, 0.000144, 0.00021, 2.19,2.55, 2.56]
如您所见,边缘的数据远高于中间的数据,即有两种不同的尺度。使用 Matlab 曲面图 (surf(test)) 我可以选择关注边缘,通过在2.6 上设置颜色图最大值,我得到:
Focus on the edges。
这很好地显示了边缘的局部差异,但中间部分没有可见的差异。
或者,我可以通过将最大值设置为 0.00025 来专注于中间,我得到:
Focus on the middle,
它显示了中间的局部差异,而不是边缘的局部差异。
我真的很想将两者结合起来。我玩了很多颜色映射编辑器,但还没有找到令人满意的解决方案。
理想情况下,我会将颜色条分为两个区域,一个蓝色区域从0 到0.00023(中间区域的最大值),第二个黄色区域从0.00023 到2.59(边缘区域的最大值)。
或者,两张图片的一些叠加是可能的(在 2D 中相当容易,但我也想在 3D 中这样做),但我更喜欢使用自定义颜色条来解决它。
有人知道怎么做吗?
【问题讨论】:
-
“如你所见,数据.....”你把它都放在这里希望我们直观地找到分号并计数?付出努力,并显示有问题的数据。我没有进一步阅读,只是看到原始数据和你的第一行英文。
-
如果您已经努力编写此评论以进一步阅读,您会看到实际上附加的图像可以让您免于阅读数据。唯一的事情是他们隐藏在一个链接中,在我有足够的声誉之前我无法做任何事情。我认为为此给我减分是不公平的,也无助于我获得足够的声誉来发布图片。如果您撤消它,我将不胜感激,所以希望下次我可以发布清晰的图像。
-
那里,看起来更好,所以赞成。
-
考虑在下面接受我的回答。这是一个很好的问题,答案可以使社区受益。