# Is it possible to change label names in Matlab

36 views (last 30 days)
Moe on 24 Jun 2015
Commented: Moe on 24 Jun 2015
I want to have different names in my Y axis rather than numbering like the following photo:

Chad Greene on 24 Jun 2015
Here I'll do a barh(A) where A is not sorted, and I'll label the different groups based on the longest bar. Then sort according to the size of the first column in A while preserving the group label association. I adjusted the values in your A a little bit to make it more clear:
A = [2,6,50;3,4,90;1,6,103];
longbar = {'shortest','middle','longest'};
subplot(211)
barh(A)
set(gca,'ytick',1:3,'yticklabel',longbar)
title 'unsorted data:'
box off
% Resize based on first column:
[values, order] = sort(A(:,1));
sortedmatrix = A(order,:)
subplot(212)
barh(sortedmatrix)
set(gca,'ytick',1:3,'yticklabel',longbar(order))
title 'sorted data:'
box off
Moe on 24 Jun 2015

Sean de Wolski on 24 Jun 2015
barh(rand(3,1));
ax = gca;
ax.YTickLabel = {'Hello','World','Wednesday'}
Moe on 24 Jun 2015
Thanks Sean. Actually my matrix is a little bit tricky. For example matrix A is as follows:
A = [2,6,100;3,4,101;1,6,103];
I will sort matrix A based on the column 1:
[values, order] = sort(matrix(:,1));
sortedmatrix = matrix(order,:)
So, I have now:
A = [1,6,103;2,6,100;3,4,101];
Now, I need a barh graph that the Y axis label is named base on the third column in sorted matrix A. And also is it possible to replace this new label with other names. For example, if I know 100 = Hello, 101 = World and 103 = Wednesday, then I need these new labels to be appear in my graph.

Chad Greene on 24 Jun 2015
plot(1:9,1:9)
set(gca,'ytick',1:9,'yticklabel',{'book','pen','vb','top','red','green','black','green','verb'})

Azzi Abdelmalek on 24 Jun 2015
t=0:10;
y=sin(t)
plot(y)
s={'a' 'b' 'c' 'd' 'e' 'f'}
yt=get(gca,'ytick')
n=numel(s)
set(gca,'xtick',linspace(min(yt),max(xt),n),'yticklabel',s')