Filter löschen
Filter löschen

Question about labels under each boxplot.

62 Ansichten (letzte 30 Tage)
Marcus Vinicius Pereira de Souza
Beantwortet: Ankita am 8 Feb. 2023
Dear all, I need to put labels under each boxplot. To do this, I'm using: boxplot([dados(:,1),dados(:,2)],'labels',{'bf\it{IDEB}_2_0_0_7'},{'\bfEfficiencies'}) Unfortunately, I don´t have sucess. Can someone help me? Best regards. Marcus Vinicius

Antworten (7)

Jiro Doke
Jiro Doke am 26 Feb. 2012
When you say you don't have success, I assume you're saying that the labels aren't being rendered with the bold/italics/subscript formatting.
Try this:
dados = rand(100,2);
boxplot(dados,'labels',{'\bf\it{IDEB}_2_0_0_7','\bf Efficiencies'})
h = findobj(gca, 'type', 'text');
set(h, 'Interpreter', 'tex');
  1 Kommentar
Tom Cook
Tom Cook am 21 Apr. 2019
Hi, I kinda have the same problem. And your solution jiro does not work for me (MATLAB R2017a)!
Why? How can I make it work?
Why is there no proper handle for the boxplot function like for any other plot function?!

Melden Sie sich an, um zu kommentieren.


Oleg Komarov
Oleg Komarov am 26 Feb. 2012
dados = rand(100,2)
boxplot(dados,'labels',{'\bf\it{IDEB}_2_0_0_7','\bf Efficiencies'})

Marcus Vinicius Pereira de Souza
Dear Oleg, Thanks you very much for your attention. But, unfortunately, the labels aren't being rendered with the bold/italics/subscript formatting. Best wishes, Marcus Vinicius

Marcus Vinicius Pereira de Souza
Dear Jiro, Thanks you very much for your attention. How do I do so that the name IDEB_2007 does not sit so close to the x-axis? Best wishes, Marcus Vinicius

Chathurika
Chathurika am 29 Aug. 2013
set boxplot labels bold and font size of 16...
boxplot(X,'labels',{'a','b','c'})
set(findobj(gca,'Type','text'),'FontSize',16,'fontweight','bold')

Tyler
Tyler am 26 Feb. 2015
This page helped solve my issues using boxplots. I will list out all the tweaks I wanted done to my boxplot in case it helps anyone else.
I found all the editable properties using:
get(gca)
h = findobj(gca, 'type', 'text');
get(h(1))
and so on.
Here is an example of my tweaks:
data = rand(100,1); %random data
% a label for each data point
labels = repmat({'group2','group3','group1','group3'}',25,1);
Label_size = 15;
%used grouporder to arange the order of the boxes
%the labels option let you rename the labels (from group1 to G1)
boxplot(data,labels,'grouporder',{'group1','group2','group3'},'label',{'G1','G2','G3'})
xlabel('Labels','FontSize',Label_size,'FontWeight','bold')
ylabel('Data','FontSize',Label_size,'FontWeight','bold')
title('Nice Boxplot','FontSize',Label_size,'FontWeight','bold')
h = findobj(gca, 'type', 'text');
% this alters Yticklabels [0 to 1]
set(gca,'FontSize',Label_size);
set(gca,'FontWeight','bold')
% this alters the group labels: G1, G2, G3
set(h,'FontSize',Label_size);
set(h,'Interpreter','tex');
set(h,'FontWeight','bold')
% this moves the groups labels and the Xlabel down to avoid overlap
for j=1:length(h)
set(h(j),'Position',get(h(j),'Position')+[0 -5 0]);
end
h2 = get(gca, 'XLabel');
set(h2,'Position',get(h2,'Position')+[0 -8 0]);
You can change almost anything about any of the text this way, just look up the text properties you want to change, for more information see: text-properties.

Ankita
Ankita am 8 Feb. 2023
data = rand(100,1); %random data
% a label for each data point
labels = repmat({'group2','group3','group1','group3'}',25,1);
Label_size = 15;
%used grouporder to arange the order of the boxes
%the labels option let you rename the labels (from group1 to G1)
boxplot(data,labels,'grouporder',{'group1','group2','group3'},'label',{'G1','G2','G3'})
xlabel('Labels','FontSize',Label_size,'FontWeight','bold')
ylabel('Data','FontSize',Label_size,'FontWeight','bold')
title('Nice Boxplot','FontSize',Label_size,'FontWeight','bold')
h = findobj(gca, 'type', 'text');
% this alters Yticklabels [0 to 1]
set(gca,'FontSize',Label_size);
set(gca,'FontWeight','bold')
% this alters the group labels: G1, G2, G3
set(h,'FontSize',Label_size);
set(h,'Interpreter','tex');
set(h,'FontWeight','bold')
% this moves the groups labels and the Xlabel down to avoid overlap
for j=1:length(h)
set(h(j),'Position',get(h(j),'Position')+[0 -5 0]);
end
h2 = get(gca, 'XLabel');
set(h2,'Position',get(h2,'Position')+[0 -8 0]);

Community Treasure Hunt

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

Start Hunting!

Translated by