J'ai une parcelle 3D comme ceci:Comment puis-je ajuster le groupement de barres 3D et l'étiquetage de l'axe des y dans MATLAB?
Sur l'axe des y de la parcelle, chaque groupe de trois barres se réfère aux mêmes paramètres: x1, x2, x3. Je voudrais avoir un espacement sur l'axe des y pour chaque groupe de trois barres, de sorte qu'il devient plus clair que ces barres se réfèrent aux mêmes paramètres. Dans le même temps, je voudrais mettre une étiquette sur l'axe des y pour chaque groupe de trois barres. Par exemple, la mise en page de l'étiquette suivante pour l'axe y serait souhaitable:
x1 x2 x3 x1 x2 x3 x1 x2 x3
grid1 grid2 grid3
Toutes les suggestions sont plus que bienvenus! Le code que je l'habitude de tracer les barres est donnée ci-dessous:
Z = rand(9,5);
h = bar3(Z);
[r c] = size(Z);
zdata = [];
for i = 1:c
zdata = [];
for j = 1:r
zdata = [zdata; ones(6,4)*Z(j,i)];
end
set(h(i),'Cdata',zdata)
end
colormap
colorbar
set(gca,'YTickLabel',['x1';'x2';'x3';'x1';'x2';'x3';'x1';'x2';'x3']);
view([-64 44]);
+1 Je pense qu'une sorte de colormap progressif serait plus esthétique: 'colormap (flipud (été))' – Amro
@Amro: Oui, une palette de couleurs différente serait meilleure. J'essayais juste de reproduire la figure originale avec les modifications demandées par le PO. – gnovice
Merci, ça fonctionne comme un charme! J'ai aussi besoin de tracer en haut de chaque barre, la valeur qui lui est associée (venant de Z). Je faisais sth. comme: h = texte (mymat (:, 1), mymat (:, 2) -0,20, Z (:), num2str (Z (:))); où mymat est utilisé comme matrice d'index. Savez-vous, s'il y a un moyen plus efficace de le faire? Dans mon cas, j'ai rempli 'mymat' comme suit: rows = 5; cols = 9; mymat = zéros (rangs * cols, 2); k = 1; pour j = 1: lignes pour i = 1: cols mymat (k, 1) = j; mymat (k, 2) = i; k = k + 1; end Meilleurs voeux – Javier