Representing certain range of X axis using a single tick in MATLAB plot

3 views (last 30 days)
I have the following data:
X = [1,2,3,4,5,6,7];
Y = [10,10,10,10,20,30,40];
bar(X,Y)
For X axis value until 4, the Y axis value is the same which is 10. I want to represent the barplot where the first X axis tick will show 1:4 and Y axis value will show 10. For the other X axis values from 5 to 7 will be represented each using a single tick as usual, for example X axis will be 1:4 5 6 7, so 4 ticks in total in X axis. Please let me know how to do that.

Accepted Answer

Adam Danz
Adam Danz on 29 Mar 2020
Edited: Adam Danz on 29 Mar 2020
Two options
X = [1,2,3,4,5,6,7];
Y = [10,10,10,10,20,30,40];
xIdx = [1,5,6,7];
bar(X(xIdx), Y(xIdx))
ax = gca();
ax.XTick = xIdx;
ax.XTickLabel{1} = '1:4';
xIdx = [1,5,6,7];
bar(Y(xIdx))
ax = gca();
ax.XTick = 1:numel(xIdx);
ax.XTickLabel = {'1:4','5','6','7'};
  3 Comments
Adam Danz
Adam Danz on 29 Mar 2020
Edited: Adam Danz on 29 Mar 2020
Also see the width variable in bar() if you'd like the 1:4 bar to spread out across all 4 x-values in the first option, although you'd need to either plot it separately or use a grouping variable.

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!