我想用八度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');
没有改变任何东西,所以我认为这个图也考虑了对数比例,但只是一个错误的数字格式。
答案 0 :(得分:1)
您可以手动设置xticklabel
或yticklabel
,例如:
x = [1e7, 1e8, 1e9];
ax = gca();
set(ax, 'xticklabel', {'0','2e8','4e8','6e8','8e8','10e8'});
hist(x);
或者,您可以将x轴设置为对数刻度:
set(ax, 'xscale', 'log');