我想以对数刻度绘制一些数据,但无法找到自动更改对数刻度基数的选项。
x = 1:100;
y = 2 .^ x;
semilogy(x, y);
给了我
我已经能够手动更改y刻度。
x = 1:100;
y = 2 .^ x;
semilogy(x, y);
set(gca, 'ytick', 2 .^ (0:20:100));
set(gca, 'yticklabel', {'2^{0}' '2^{20}' '2^{40}' '2^{60}' '2^{80}' '2^{100}'});
给了我
我对我得到的情节感到满意,但出于好奇,是否可以选择自动更改对数刻度的日志基础?
答案 0 :(得分:0)
正如克里斯托夫所说,在八度音或matlab中没有选择。您可以自动执行一点过程,并确保刻度位置和标签之间的一致性,如here所述。
例如
x = 1:100;
y = 2 .^ x;
semilogy(x, y);
base = 2;
tick_exponents = 0:20:100;
set(gca, 'ytick', base .^ tick_exponents);
format_string = sprintf('%d^{%%d}', base);
tick_labels = num2str(tick_exponents(:), format_string)
set(gca, 'yticklabel', tick_labels);
产生