首页 文章

如何使用colorbar绘制数量的绝对值?

提问于
浏览
0

我试图弄清楚如何使用 colorbar 来显示幅度而不是值 . 目前,colorbar的范围为[-x x],其中任何负值均为蓝色 - 颜色 . 我希望colorbar在确定绘制图形的颜色时忽略符号值 .

我尝试在 CLim 中将范围设置为 [0 x] ,但这只是绘制了负蓝色的任何东西 .

一个例子是绘制一个球体 . 如果绘制球体,它将以原点为中心,颜色仅反映z轴的值 . 但是,我希望颜色条显示距离中心的距离的大小 . 因此,在这种情况下,球体应该是表示半径的纯色 .

有任何想法吗?

1 回答

  • 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"色彩映射) .

相关问题