Octave hist plot数字格式

时间:2014-01-30 11:27:38

标签: plot formatting scale octave histogram

我想用八度hist()函数绘制数据。不幸的是,由于x轴的数字非常大,它们以科学的格式显示,例如2e + 007。

由于这有点难以阅读,我希望它们只能作为基数10的指数,而不是产品或e。所以就像10 ^ 5一样。我怎样才能做到这一点?

当我使用loglog()函数绘制数据时,它会默认使用我需要的比例,但不会使用hist()

编辑:

为了更加简洁,我添加了一些代码和我的情节图片。

NUM_SAMPLES = 10000;
% Open file.
input = fopen(filename);

x = [];
for i=[1:NUM_SAMPLES]
    line = fgetl(input);
    data = strsplit(line, ';');
    x(end + 1) = str2num(data{1,2})/(1000);
endfor

% Close file.
fclose(input);

% Plot histogram.
figure('Position',[0,0,700,500]);
hist(x, 500);

所以我只是从我的文件中读取一些大数字,并想用hist绘制它。由于数字很大,因此会自动以区域比例和科学格式显示。在这里你可以看到一个示例图:

Plot with bad number format on x-axis.

不幸的是set(gca(), 'xscale', 'log');没有改变任何东西,所以我认为这个图也考虑了对数比例,但只是一个错误的数字格式。

1 个答案:

答案 0 :(得分:1)

您可以手动设置xticklabelyticklabel,例如:

x = [1e7, 1e8, 1e9];
ax = gca();
set(ax, 'xticklabel', {'0','2e8','4e8','6e8','8e8','10e8'});
hist(x);

或者,您可以将x轴设置为对数刻度:

set(ax, 'xscale', 'log');