我试图找出如何使用colorbar
来显示幅度而不是值。目前,colorbar的范围为[-x x],其中任何负值均为蓝色 - 颜色。我希望colorbar在确定绘制图形的颜色时忽略符号值。
我尝试将范围设置为[0 x]
中的CLim
但是只绘制了负蓝色的任何内容。
一个例子是绘制一个球体。如果绘制球体,它将居中 在原点和颜色只会反映z轴的值。但是,我希望颜色条显示距离中心的距离的大小。因此,在这种情况下,球体应该是代表半径的纯色。
有什么想法吗?
答案 0 :(得分:1)
在制作数字之前,您必须记录您正在绘制的数据的大小(例如,使用abs(data)
函数)。然后,您可以使用caxis([min max])
函数设置颜色条比例。
示例:
rawData=repmat([-10:1:10],10,1);
figure(1),imagesc(rawData),caxis([0 10]) % All raw values below 0 are plotted as blue
magnData=abs(rawData) % Take absolute value of raw data
figure(2),imagesc(magnData),caxis([0 10]) % Raw negative values are now plotted in the same color as positive raw values (i.e. ignoring the sign, per the solution you requested).
您的解决方案(CLim
)无法正常工作,因为设置颜色范围[0 x]
会将低于0
的所有值的颜色与0
的值相关联(蓝色,在" jet" colormap的情况下)。