# make a data plot

1 view (last 30 days)
Hello! I want to make a plot like this, but I don't know exactly how.
More specifically,I want to plot the possible values of flux variability for some reactions.
Could someone guide me? Thank you.
##### 3 CommentsShowHide 2 older comments
Star Strider on 16 Dec 2021
My pleasure!

Sign in to comment.

### Accepted Answer

John D'Errico on 16 Dec 2021
Edited: John D'Errico on 16 Dec 2021
Easier than you think.
First, write a little function that will plot a bar of fixed height, between two points on the x axis. It might look like the function called xbar below.
Next, call that function repeatedly, once for each horizontal bar.
Finally, change the y axis to have a different set of tick labels. It looks like you will need to set the YTickLabel property on the axes. For example:
plot(rand(1,5))
H = get(gca);
H.YTickLabel
ans = 9×1 cell array
{'0' } {'0.1'} {'0.2'} {'0.3'} {'0.4'} {'0.5'} {'0.6'} {'0.7'} {'0.8'}
Now you can reset those tick mark lables as desired. And they need not be numbers.
function xbar(y,xlo,xhi,barcolor)
% On the current figure, creates a horizontal bar
% of unit height, between y and y+1, and between xlo and xhi
% this can be as simple as one call to fill.
barpolyx = [xlo,xhi,xhi,xlo];
barpolyy = [y,y,y+1,y+1];
fill(barpolyx,barpolyy,barcolor)
end
Should be pretty simple. Spend some time learning to use the basic tools.
##### 4 CommentsShowHide 3 older comments
Ioannis Vourvachakis on 16 Dec 2021
Yes, thank you!!

Sign in to comment.

### More Answers (1)

Arthur Goldsipe on 16 Dec 2021
This looks to me like a horizontally oriented box plot. You can easily create such plots using boxchart or boxplot. Since you want a legend, I recommend using boxchart.
##### 8 CommentsShowHide 7 older comments
Ioannis Vourvachakis on 16 Dec 2021
Yes, there is boxplot! Thank you!

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!