Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Question regarding hist3 fucntion

Asked by John on 10 Jan 2013

Hi,

I am using the code below to generate this plot.

The variable data contains acceleration and velocity data.

Is there a way to overwrite the the 0,0 bar (i.e velocity = 0 and acceleration = 0) and set it equal to 0? The height of the 0,0 bar is causing the other bars to appear small.

Appreciate any comments.

% Load data
load Data;
% Create the 3D bar chart
figure;
% Calculate histogram
nBinsX = 10;
nBinsY = 10;
hist3(Data,[nBinsX,nBinsY]);
% Plot histogram
set(gcf,'renderer','opengl');
s = get(gca,'child');
zData = get(s,'zData');
colormap gray;
set(s,...
  'zData'     ,zData/length(Data),... % normalize frequency
  'FaceColor' ,'interp',...
  'EdgeColor' ,0.3*[1 1 1],...        % make edges visible at all heights
  'CDataMode' ,'auto');               % color tops according to height
% Labels
title('Velocity VS Acceleration Distribution');
xlabel('Velocity (mph)');
ylabel('Acceleration (m/s^2)');
zlabel('Normalized Frequency');

0 Comments

John

Tags

Products

No products are associated with this question.

1 Answer

Answer by José-Luis on 10 Jan 2013
Edited by José-Luis on 10 Jan 2013
Accepted answer

You could remove the data that are close to [0 0] before getting your histogram

If you want to remove values equal to [0 0];

 Data = Data(~all(Data,2),:);

If you want to remove values close to [0 0];

 your_lim = eps(100); %or some other approximation
 Data = Data(all(abs(Data) > your_lim,2),:); 

Then you can obtain your histogram.

2 Comments

John on 10 Jan 2013

Thank you

José-Luis on 10 Jan 2013

My pleasure.

José-Luis

Contact us