Plotting powers of 10 on the colorbar

22 ビュー (過去 30 日間)
Mathan
Mathan 2022 年 4 月 7 日
コメント済み: Star Strider 2022 年 4 月 7 日
Hello,
Is there any way to have powers of 10 (like 1e5, 1e6, 1e7) to be plotted on the colorbar as tickmarks without resorting to using log10? I tried the following code.
col = colorbar('XTickLabel', {'10^{5}', '10^{6}', '10^{7}'}, 'XTick',1e10:1e11:1e12);
caxis([1e10 1e12])
but that just gives me a colorbar with the xticks repeated as shown in colorbar.jpg (attached).
I also tried taking the log10 of these values as shown by the following code and got the desired output as shown in colorbar_log.jpg (attached):
col = colorbar('XTickLabel', {'10^{5}', '10^{6}', '10^{7}'}, 'XTick',log10(1e5):1:log10(1e7));
caxis([log10(1e5) log10(1e7)])
I however was wondering whether the same output as in colorbar_log.jpg can be obtained without resorting to taking log10.
Thanks.

採用された回答

Star Strider
Star Strider 2022 年 4 月 7 日
These are 'Ruler' properties, and they are not in the colorbar documentation. (I had to go searching for them, and then experiment.)
Try this —
[X,Y] = meshgrid(-1000:10:1000);
Z = exp(-(X.^2+Y.^2)/1E5)*1E6;
figure
surf(X,Y,Z, 'EdgeColor','none')
grid on
colormap(turbo)
hcb = colorbar;
% get(hcb);
hcb.Ruler.Exponent = 3;
hcb.Ruler.Scale = 'log';
See NumericRuler Properties for more details.
.
  8 件のコメント
Mathan
Mathan 2022 年 4 月 7 日
Definitely - thanks!
Star Strider
Star Strider 2022 年 4 月 7 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (1 件)

Voss
Voss 2022 年 4 月 7 日
編集済み: Voss 2022 年 4 月 7 日
You can use naturlal log (log) or base-2 log (log2) (but I think log10 makes the most sense):
col = colorbar('XTickLabel', {'10^{5}', '10^{6}', '10^{7}'}, 'XTick',log(10.^(5:7))/log(10));
caxis([5 7])
figure();
col = colorbar('XTickLabel', {'10^{5}', '10^{6}', '10^{7}'}, 'XTick',log2(10.^(5:7))/log2(10));
caxis([5 7])
  2 件のコメント
Mathan
Mathan 2022 年 4 月 7 日
Thank you - basically the same thing as log10 I guess.
Voss
Voss 2022 年 4 月 7 日
Exactly. log10 with an extra log.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeData Distribution Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by