3d BAR GRAPH WITH ERROR

1 view (last 30 days)
Jaspreet Kaur
Jaspreet Kaur on 29 Oct 2021
Commented: Jaspreet Kaur on 29 Nov 2021
Hi,
I am trying to plot 3D bar graph with x_true , y_true coordinates and error percentage. I tried stem, meshgrid, bar3 etc, but not able to do so. can anyone assist me to plot the graph?
figure
x_pred = Net_Out(1,:);
y_pred = Net_Out(2,:);
%
x_true = correct_output(:,1);
y_true = correct_output(:,2);
err = sqrt((x_pred - x_true).^2 + (y_pred - y_true).^2);
figure
meshgrid(x_true, y_true, err);
% figure
% percent_er = 100*errorbar((x_pred - x_true),(y_pred - y_true),err);
% figure
% bar3(err)

Answers (1)

Drishan Poovaya
Drishan Poovaya on 1 Nov 2021
I understand you want to create 3D plot of the errors vs x_true and y_true.
First of all, based on the code you have provided, the dimensions of x_pred and y_pred do not match those of x_true and y_true.
You can try evaluating x_pred and y_pred as below
x_pred = (Net_Out(1,:))';
y_pred = (Net_Out(2,:))';
For this kind of plot, using stem3 would provide the kind of plot you are expecting
stem3(x_true, y_true, err);
Documentation :
  5 Comments
Drishan Poovaya
Drishan Poovaya on 12 Nov 2021
It requires a bit of a workaround, but the answer below does what you are asking for
Jaspreet Kaur
Jaspreet Kaur on 29 Nov 2021
I am trying to get surface plot with same data showe earlier. can you help ?
x_pred = (Net_Out(1,:))';
y_pred = (Net_Out(2,:))';
x_true = correct_output(:,1);
y_true = correct_output(:,2);
err = sqrt((x_pred - x_true).^2 + (y_pred - y_true).^2);
figure
stem3(x_true, y_true, err,'Marker','none', 'LineWidth', 1)
xlabel('x'); ylabel('y'); zlabel('err');
surf (x_true, y_true, err)

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!