How to plot label in multiple lines in matrix form?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Aureja
el 19 de Nov. de 2017
Comentada: Aureja
el 19 de Nov. de 2017
I am testing different conditions and I want to plot conditions I am comparing in a matrix form like shown in the figure. Any ideas how I can do that? Any help is greatly appreciated.

So far I've only managed to put it in two lines, like in the second picture, using code:
% example:
x = 1:1:10;
y = rand(10,1);
txt = {'1 2', '1 3', '1 4', '1 5', '2 3', '2 4', '2 5', '3 4', '3 5','4 5'};
labels = cellfun(@(x) strrep(x,' ','\newline'),txt,'UniformOutput',false);
figure()
plot(x,y,'.','MarkerSize',50)
xticks(x)
xticklabels(labels)
xlim([0.5 10.5])

0 comentarios
Respuesta aceptada
Rik
el 19 de Nov. de 2017
You only provide one space. How can Matlab know you sometimes mean multiple spaces?
Because of the structure your labels seem to have, I would suggest using
mini_fun=@(a,b) ...
[repmat(' ',1,a-1) ...
num2str(a) ...
repmat(' ',1,b-a-1) ...
num2str(b) ...
repmat(' ',1,5-b)];
index1=[1 1 1 1 2 2 2 3 3 4];
index2=[2 3 4 5 3 4 5 4 5 5];
%or generate these two vectors with combnk
txt=cellfun(mini_fun,num2cell(index1),num2cell(index2),'uni',false);
Más respuestas (0)
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!