有没有办法在更大范围内“拉伸”给定的色彩图?

时间:2014-10-15 21:50:31

标签: matlab colormap

我正在构建一个MATLAB程序来可视化粒子聚类的模拟。 我们的模拟通常使用大约10000个粒子运行,并且簇可能大约为5000个粒子,我想按大小对簇进行着色,因此我插入了以下代码:

a=[1 1 1 500]; %means x=1 y=1 z=1 and clustersize=500
colormap(flipud(pink));
scatter3(a(:,1),a(:,2),a(:,3),repmat(10,numel(a(:,1)),1),a(:,4),'filled','MarkerEdgeColor', 'k')

并且在群集达到一定大小后,它变得“饱和”并且即使在生长到两倍大小时也会粘着相同的颜色。 我已经尝试使用colormap(hsv(1024));来制作更大的彩色地图,但这对我来说也不是很好,因为我想要使用从浅到深的均匀渐变,现在必然会弄乱各种各样的颜色,如无法辨别。

任何想法如何伸展colormap(flipud(pink));所以它只会在5000左右饱和?或者让我知道是否有其他解决方案会给我一个更高的“动态范围”

1 个答案:

答案 0 :(得分:0)

好的,所以在尝试回答路易斯·门多时,我开始制作模拟的GIF,并决定在图中添加colorbar;,然后我看到颜色条从一个图形到另一个图形。 我找到了代码

lowrange = 1;
highrange = 5000;
caxis manual
caxis([lowrange highrange]);
我之前用于另一次模拟的

用于预先确定colorbar;的范围。这显然意味着色彩图的范围也被“拉伸”或使用了预定的范围。

以下是来自模拟的两个剪辑,一个具有caxis修正,一个没有,注意颜色条如何在没有修复的情况下改变,这导致粒子循环黑色(饱和)对于大多数模拟,无论簇大小如何。

simulation without the corrected caxis code

simulation with corrected caxis code