Matlab中scatter3自定义色标刻度与Z值范围不匹配问题求助
解决Matlab 2017a scatter3色标刻度与Z维度范围不匹配的问题
你的问题出在scatter3的颜色参数传递方式:直接传入RGB颜色矩阵cMap时,Matlab会将其视为独立的颜色值,不会关联到Z数据,导致色条默认使用0-1的范围,和Z的0-5区间不匹配。
修正步骤:
- 将Z数据作为scatter3的颜色参数,让颜色与Z值建立关联
- 使用
caxis强制色条范围匹配Z的取值区间[0,5]
修改后的代码:
maxval = 5; num = 10; X = linspace(0,maxval,num); Y = linspace(0,maxval,num); Z = linspace(0,maxval,num); % 生成自定义渐变色图(橙色到黄绿色) cMap = interp1([0;1],[1 .5 0; .5 1 0],linspace(0,1,num)); % 将Z作为颜色参数,让颜色映射到Z值 scatter3(X,Y,Z,50,Z,'Filled'); view(-75,20); colormap(cMap) % 设置色条范围与Z数据一致 caxis([0 maxval]) colorbar
效果说明:
修改后,色条的刻度会显示为0到5,每个点的颜色会根据自身Z值对应到自定义色图中的颜色,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Sanjo
相关产品推荐
相关产品推荐

