Unexpected error when plotting a bar chart

figure('Name','frequency of reduced category response by groups');
h = bar(mean_resp_bygroup([3,4,2,1],:)); %mean_resp_bygroup is a 4-by-2 double matrix
h.YLabel = 'Reduced Category Response';
h.DisplayName = {'OR','XOR'}; %legend labels
h.XTickLabels = {'W','X','Y','Z'};
legend();
title('Frequency of Reduced category response');
I get this error message: Expected one output from a curly brace or dot indexing expression, but there were 2 results.
I suspect that has something to do with how the function bar works in the background. Anyone has any idea how to solve this issue?

4 Comments

What line is the error referring to?
h.YLabel = 'Reduced Category Response'
then I suspect that is where the error is ;)
Now I get this error:
Error setting property 'YLabel' of class 'Axes':
Value must be 'matlab.graphics.Graphics'.

Sign in to comment.

 Accepted Answer

Fangjun Jiang
Fangjun Jiang on 6 Jul 2020
Edited: Fangjun Jiang on 6 Jul 2020
because your data is 4x2, h is an 1x2 array so you can't use h.YLabel. Check the value of h
You have to use h(1).YLabel but then 'YLabel' is not a valid property

6 Comments

Then how can I add a Y label for the whole figure?
ax = gca;
ax.YLabel = 'blabla'
Now I get this error:
Error setting property 'YLabel' of class 'Axes':
Value must be 'matlab.graphics.Graphics'.
'YLabel' is a property of the axes.
f=figure;
a=axes;
h=bar(rand(4,2));
a.YLabel.String='Reduced Category Response'
legend({'OR','XOR'})
Sorry, I always forget the .String field :)
Thank you guys. Problem solved!

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!