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

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.

 Respuesta aceptada

Adam Danz
Adam Danz el 29 de Mzo. de 2020
Editada: Adam Danz el 29 de Mzo. de 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 comentarios

Adam Danz
Adam Danz el 29 de Mzo. de 2020
Editada: Adam Danz el 29 de Mzo. de 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.
Sounds good, appreciate it.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Geographic Plots en Centro de ayuda y File Exchange.

Productos

Versión

R2019a

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by