2014-01-30 3 views
2

Я хочу построить данные с октавами hist() Функция. К сожалению, поскольку числа оси x довольно велики, они отображаются в научном формате, например, как 2e + 007.Формат номера участка октавы

Поскольку это немного трудно читать, я бы хотел, чтобы они были высыпаны только как экспоненты к основанию 10 без продукта или e. Так, например, 10^5. Как я могу это достичь?

Когда я рисую данные с помощью функции loglog(), она использует масштаб по своему усмотрению, но не для hist().

EDIT:

Чтобы быть немного больше preceise, я добавить код и картину моего участка.

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'); ничего не изменится, так что я думаю, что этот участок также рассмотреть вопрос о логарифмическом масштабе, а просто плохой формат номера.

+0

Вы можете разместить свой код с некоторыми данные для иллюстрации вопроса? – am304

+0

Мой вход - это просто вектор с числами, а затем я рисую его с помощью hist (duration, 500) ;. Но поскольку большинство чисел действительно велико, октава отображает числа оси x в описанном формате. – Chris

ответ

1

Вы можете установить xticklabel или yticklabel вручную, например:

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

В качестве альтернативы, вы можете установить ось х, чтобы быть в логарифмической шкале:

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

Я не хочу всегда устанавливать метки вручную. Он должен адаптироваться к данным сам по себе, так же, как и сейчас. Отображать только цифры в другом формате. К сожалению, последняя строка для меня не работает. – Chris

+1

@ Крис, почему последняя строка не работает? Он устанавливает масштаб журнала для оси x. Предоставьте свои данные, чтобы мы могли воспроизвести желаемый вывод 'plot()' output и нежелательный вывод 'hist()'. – juliohm

+0

Я попробовал это на меньшем примере, теперь это сработало. Однако для моих исходных данных это не изменяется. Вероятно, потому, что мой проблемный график гистограммы также уже находится в логарифмическом масштабе, а другой способ записи чисел. Я добавлю несколько подробностей к моему вопросу, но я действительно не делаю никаких причудливых вещей. – Chris