How can I break the text in two or three lines of the x tick label on a box plot?

47 次查看(过去 30 天)
Hello everyone! Can anybody help me break the x tick labels in multiple lines?
Each xtick label is actually a really long name so I though it would be better to replaced them with A-K..
I tried using \ or {'A1';'A2'} but it wont work..
boxplot(subjective,'Labels',{'A','B','C','D','E','F','G','H','I','J','K'},...
'PlotStyle','compact','Orientation','vertical', 'BoxStyle','filled','MedianStyle',...
'target', 'Symbol','x','OutlierSize',8);
Thank you in advance!

采纳的回答

dpb
dpb 2021-8-29
Unfortunately, the tick label interpreter won't pass a string with embedded \n on; it instead splits the string into two.
I don't think you can do it with either the 'TeX' or 'LaTeX' interpreter with the tick labels; you would have to use text to write the labels independently.
  2 个评论
Ifigenia Aslanidou
Ifigenia Aslanidou 2021-8-30
Hey, so I did some research and this code was successfull:
h=[];
color1 = gray(60);
boxplot(subjective,'PlotStyle','compact','Orientation','vertical', 'BoxStyle','outline','MedianStyle',...
'target','Color',(color1),'Widths',0.7,'Symbol','x','OutlierSize',8);
ax = gca;
ax.XTick = [1 2 3 4 5 6 7 8 9 10];
ax.XTickLabel = '';
myLabels = {'A1', 'B1', 'C1', 'D1',...
'E1', 'F1', 'G1', 'H1','I1', 'J1';...
'A2','B2','C2', 'D2', 'E2', 'F2',...
'G2','H2','I2', 'J2'};
for i = 1:length(myLabels)
h(i)=text(ax.XTick(i), ax.YLim(1), sprintf('%s\n%s\n', myLabels{:,i}), ...
'horizontalalignment', 'right', 'verticalalignment', 'middle');
set(h,'Rotation',90); %rotating the x label
end
% ax.XLabel.String = sprintf('\n\n\n\n\n%s', 'something'); %x label name
dpb
dpb 2021-8-30
Yes, using text() works ... why TMW neutered the interpreter for the tick labels is anybody's guess.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Axis Labels 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by