I tienen una parcela 3D como esto:¿Cómo puedo ajustar la agrupación de barras 3-D y el etiquetado del eje y en MATLAB?
En el eje y de la trama, cada grupo de tres barras se refiere a los mismos parámetros: x1, x2, x3. Me gustaría tener un espaciado en el eje y para cada grupo de tres barras, de modo que quede más claro que esas barras se refieren a los mismos parámetros. Al mismo tiempo, me gustaría poner una etiqueta en el eje y para cada grupo de tres barras. Por ejemplo, sería deseable el siguiente diseño de etiqueta para el eje y:
x1 x2 x3 x1 x2 x3 x1 x2 x3
grid1 grid2 grid3
Cualquier sugerencia es más que bienvenido! El código que he utilizado para trazar las barras se da a continuación:
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 Creo que algún tipo de mapa de colores gradual se vería mejor: 'colormap (flipud (verano))' – Amro
@Amro: Sí, un mapa de colores diferente se vería mejor. Solo intentaba reproducir la figura original con las modificaciones que me pidió OP. – gnovice
¡Gracias, funciona como un encanto! También necesito trazar en la parte superior de cada barra, el valor asociado (proveniente de Z). Estaba haciendo algo. como: h = texto (mymat (:, 1), mymat (:, 2) -0.20, Z (:), num2str (Z (:))); donde mymat se usa como una matriz de índices. ¿Sabes si hay una manera más eficiente de hacer eso? En mi caso, llené 'mymat' como: rows = 5; cols = 9; mymat = zeros (rows * cols, 2); k = 1; para j = 1: filas para i = 1: cols mymat (k, 1) = j; mymat (k, 2) = i; k = k + 1; final final Mis mejores deseos – Javier