Is it possible to make graphs like this in MATLAB?

Hello, I want to make a bar graph in matlab but the bars only showing for an interval in y for some x. For example. For example for x=1 I would like to create a bar that starts in y=3 and ends in y=5. For x=2 I would like to create a bar that starts from y=5 and ends in y=15.
Can you help me? Here's a picture to explain better what I'm looking for
Thanks In Advance,

 Accepted Answer

The rectangle function can come to your rescue:
w = 0.5; % Rectangle Width
figure(1)
axis([0 4 0 20])
rectangle('Position',[1-w/2 1 0.5 4], 'LineWidth',2)
rectangle('Position',[2-w/2 5 0.5 10], 'LineWidth',2)
rectangle('Position',[3-w/2 10 0.5 5], 'LineWidth',2)
produces:

6 Comments

Rui’s Answer moved here...
But for example I can also have for x=1 two intervals. One from y=3 to y=5 and another from y=8 to y=12. Is it possible to do a graph like that in matlab?
Yes. Add a rectangle call, for instance:
rectangle('Position',[1-w/2 8 0.5 4], 'LineWidth',2)
producing this plot:
Rui
Rui on 14 Nov 2014
Edited: Rui on 14 Nov 2014
Yes, that could definetely do what I want. And in the x axis can I put names from a cell array instead of numbers?
Thank you so much for your help
My pleasure!
The rectangles are already aligned with the y-axis.
Relabeling the x-axis is relatively straightforward. You have to define where the 'XTick' values are (for example {1 2 3}, and supply a matching array of 'XTickLabels'. See the documentation for Axis Properties for details. MATLAB will place them correctly. This varies by version, with significantly different and new options in R2014b, so see the documentation for your version of MATLAB for the correct syntax.
(The most sincere expression of thanks here on MATLAB Answers is to Accept the answer that most closely solves your problem.)
Thank you so much! You helped me a lot!
Best Regards

Sign in to comment.

Categories

Asked:

Rui
on 14 Nov 2014

Commented:

on 14 Nov 2014

Community Treasure Hunt

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

Start Hunting!