2014-01-28 4 views
1

У меня возникают проблемы с поддержанием равного расстояния между отметками на оси X при построении гистограммы. Я указываю ячейки, которые я хочу использовать.Равное расстояние между отметками на графике гистограммы

X = [ 800 ; 700 ; 200 ; 50 ; 20 ; 20 ; 10] ;    Y = [1;1;1;1;1;1;1] ; 

% The bins I want to use --> 
BinEdges = [0 10 50 100 500 1000] ; 


% Get the edge centers 
EdgeLowEach= BinEdges(1:end-1);  %# bins lower edge 
EdgeUprEach= BinEdges(2:end);  %# bins upper edge 
EdgeCentr = ((EdgeLowEach + EdgeUprEach) ./ 2)';  %# bins center 

[n,BinIdx] = histc(X, BinEdges) ; 
Y   = accumarray(BinIdx, Y, [], @sum); 

h = figure; set(h,'name','Trial','numbertitle','off') ; hold on ; 

bar(EdgeCentr,Y,'hist') ; 
set(gca, 'XTick',BinEdges, 'XLim',[BinEdges(1) BinEdges(end)]) 

enter image description here

Теперь, как я могу сделать пространство между клещами 0,50,100..1000 же?

ответ

2

Заменить последние две строки по

bar(Y,'hist'); %// this uses 1:numel(Y) as x axis values 
set(gca,'XTick',.5:numel(Y)+.5,'Xticklabel',BinEdges,'XLim',[.5 numel(Y)+.5]) 

enter image description here

Это показывает зависимость полосы на равном расстоянии х-позиции (1, 2, 3, ...). Затем он добавляет метки ваших краев бункера (которые не соответствуют фактическим значениям x, но неважно) и устанавливает пределы оси x в соответствии с значениями, фактически используемыми для оси x.

Смежные вопросы