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

Adding Labels to a bar graph

Asked by Alfonso on 27 Jul 2011

Hey everyone, I am a student learning how to use matlab. I cannot find out to add labels to my bar graphs in my text or matlab's help section.

currently my code is:

bar(years,per_year_growth)
title('Total forest')
xlabel('Years')
ylabel('Acres Per Year')

This works for most plots but not the bar graph. Any help is appreciated. Thanks.

EDIT:

Posting my full program so this is easier to understand.

years=0:20;
total_forest = zeros(21,1);
per_year_growth = zeros(21,1);
total=14000;
uncut=2500;
rate=0.02;
output = zeros(3,21);
total_forest(1) = uncut;
for n = 1:20
    total_forest(n+1) = uncut*((1+rate)^n);
end
per_year_growth(1) = 0;
for n = 1:20
    per_year_growth(n+1) = total_forest(n+1) - total_forest(n);
end
output(1,:) = years;
output(2,:) = total_forest;
output(3,:) = per_year_growth;
disp('Years      Total Acres       Acres Grown Per Year')
fprintf('%f     %f      %f\n',output)
bar(years,per_year_growth)
title('Total forest')
xlabel('Years')
ylabel('Acres Per Year')

The specific error I get is:

??? Index exceeds matrix dimensions.
Error in ==> hmwk9_pace at 69
xlabel('Years')

Line 69 is "xlabel('Years')" w/o quotes of course.

2 Comments

Fangjun Jiang on 27 Jul 2011

What do you mean?

the cyclist on 27 Jul 2011

The full code you posted works perfectly well for me. I suggest you try restarting MATLAB, and see if that helps.

Also, maybe try "which xlabel" to make sure you don't have some function of your own lurking somewhere, that you defined. The function should be in your_matlab_directory/toolbox/matlab/graph2d/xlabel.m

Alfonso

Products

No products are associated with this question.

3 Answers

Answer by Fangjun Jiang on 27 Jul 2011

I ran your code without any problem. The error message indicates that you might have a variable called xlabel. Check your worksapce.

>> xlabel=1:10
xlabel =
     1     2     3     4     5     6     7     8     9    10
>> xlabel('Years')
??? Index exceeds matrix dimensions.
>> which xlabel -all
xlabel is a variable.
C:\Program Files\MATLAB\R2010b\toolbox\matlab\graph2d\xlabel.m  % Shadowed 

0 Comments

Fangjun Jiang
Answer by the cyclist on 27 Jul 2011

This worked for me:

years = rand(3,4);
bar(years)
title('Total forest')
xlabel('Years')
ylabel('Acres Per Year')

0 Comments

the cyclist
Answer by Paulo Silva on 27 Jul 2011

I works just fine, you might be doing something else that's affecting the axes, try to run it after

cla reset

Also try this code

x = -2.9:0.2:2.9;
bar(x,exp(-x.*x),'r')
title('Total forest')
xlabel('Years')
ylabel('Acres Per Year')

0 Comments

Paulo Silva

Contact us