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

3 次查看(过去 30 天)
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.

采纳的回答

Adam Danz
Adam Danz 2020-3-29
编辑:Adam Danz 2020-3-29
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 个评论
Adam Danz
Adam Danz 2020-3-29
编辑:Adam Danz 2020-3-29
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by