【发布时间】:2014-01-30 11:27:38
【问题描述】:
我想用八度音阶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 绘制它。因为数字很大,所以会自动以本地比例和科学格式显示。在这里你可以看到一个示例图:
不幸的是set(gca(), 'xscale', 'log'); 并没有改变任何东西,所以我认为这个情节也考虑了对数比例,但只是一个糟糕的数字格式。
【问题讨论】:
-
您能否发布您的代码并附上一些数据来说明问题?
-
我的输入只是一个带有数字的向量,然后我用 hist(duration, 500); 绘制它。但由于大多数数字都很大,因此 octave 以所描述的格式显示 x 轴的数字。
标签: plot formatting scale octave histogram