Bonjour à tous,

C'est un petit casse tête de faire des graphiques propres avec des boxplots. C'est encore pire quand on utilises des boxplots groupées.

J'ai remarqué que l'axe des abscisses ne correspond plus à grand chose et dépend du 'factorgap'. Ça peut devenir un problème dans le cas où on doit ajouter des xtick centrés entre les boxplot groupées ou encore lorsqu'on rajoute tout autre type de graphique sur la même figure. Je pensais pouvoir faire ça plus ou moins proprement en récupérant la postions de mes droites de mes boxplot avec un findobj('type','line') mais c'est des positions qui me semblent être propre au référentiel boxplot.

Le code suivant fait le travail pour ce cas précis mais n'est aucunement transposable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
x=rand(200,9)+0.5;
y=rand(200,9);
 
dat(:,1:2:18)=x;
dat(:,2:2:18)=y;
 
hold on 
boxplot(dat, {reshape(repmat('A':'I',2,1),18,1) repmat((1:2)',9,1)} ,'factorgap',10,'color','rk','whisker',inf)
 
set(gca,'xtick',1.5:3.7:3.7*9)  % 1.5:3.7:3.7*9 est la mise à l'échelle de mon axe super bidouillage maison mais fonctionne seulement pour un factorgap = 10, sinon tout est à refaire
set(gca,'xticklabel',{1:9})
 
z=rand(9,1);
plot(z,'LineWidth',3,'linestyle','--') % plot décalé
plot(1.5:3.7:3.7*9,z,'LineWidth',3) % même facteur maison pour caler les données sur l'axe x
Si vous avez des suggestions pour rendre ça plus flexible ou toute autre idée, je vous écoute ! Même si c'est pour me dire que c'est pas possible

merci !