我有对数的数据。这是我绘制它的方式:
contourf(x, y, log10(my_data));colorbar;
现在,图像看起来很好 - 颜色会根据每个点的值进行缩放,因此我的图像很丰富。但是,我的颜色条旁边显示的值是错误的 - 它们错过了基础(即我有 3 而不是 10 ^ 3 )。所以我尝试使用 caxis 建议here:
cmin = min(my_data(:));
cmax = max(my_data(:));
C = contourf(x, y, log10(my_data));colorbar;caxis([cmin cmax]);
它有点帮助:颜色条显示的值是正确的。但是:
修改:Souver的想法有效。但是,我原来的嘀嗒声不仅仅是 10 的强大力量。所以新的滴答如下: 10 ^ -1 , 10 ^ -0.5 , 10 ^ 0 , 10 ^ 0.5 < / em>, 10 ^ 1 等。但我不想要 10 ^ -0.5 , 10 ^ 0.5 等刻度线等等。所以我有一个新的(更短的)刻度线和我想要的标签列表:
set(cbar, 'TickLabels', new_labels)
现在我的标签看起来像这样: 10 ^ -1 , 10 ^ -0 , 10 ^ 1 , 10 ^ 2 , 10 ^ -1 , 10 ^ -0 , 10 ^ 1 , 10 ^ 2 等等。
我该如何处理?
答案 0 :(得分:2)
您想修改TickLabels
属性,为每个刻度标记创建自定义标签。您可以检索当前的Tick
位置,然后为每个位置创建一个标签。
cbar = colorbar;
% Get the current location of the tick marks
ticks = get(cbar, 'ticks');
% Now create a label for each tick mark (you can modify these however you want)
labels = arrayfun(@(x)['10^', num2str(x)], ticks, 'uniformoutput', false);
% Assign the labels to the colorbar
set(cbar, 'TickLabels', labels)
<强>更新强>
您也可以在运行上述代码之前自行手动指定刻度位置。
ticks = [0 10 100 1000];
set(cbar, 'ticks');