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

# 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.

```% 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');
```

## Products

No products are associated with this question.

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

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.