MATLAB, GRAPH DOS series de datos en un gráfico
-
15-09-2020 - |
Pregunta
En Matlab, ¿es posible crear una única gráfica de dos fuentes de datos relacionadas con la primera fuente trazada a lo largo de la parte inferior del eje x y la segunda fuente que se traza de la parte superior del eje x?
No puedo encontrar ninguna parte de la documentación de Matlab donde se hace esto.
El gráfico final que necesito está en un formulario como este:
Solución
Intenté reproducir su gráfico lo más cerca posible.Aquí está lo que terminé con:
t = linspace(datenum('01-19-2002'), datenum('06-27-2002'), 12);
x1 = randi(40, [12 1]);
x2 = randi(40, [12 1]);
z = 100-x1-x2;
hAxR = axes();
hAxL = axes();
h = bar(t, [x1 z x2], 'stacked');
set(h(1),'facecolor','y')
set(h(2),'facecolor',[.8 .8 .8])
set(h(3),'facecolor','r')
legend(h, {'s1' 's2' 's3'}, ...
'orientation','horizontal', 'location','northoutside')
set(hAxL, 'xtick',t, 'xlim',[datenum('01-01-2002') datenum('07-15-2002')])
datetick(hAxL, 'x',2,'keepticks','keeplimits')
xticklabel_rotate
ylabel(hAxL, 'label1')
ylabel(hAxR, 'label2')
set(hAxR, 'position',get(hAxL,'position'), 'color','none', 'xtick',[], ...
'ydir','reverse', 'yaxislocation','right', 'ylim',get(hAxL,'ylim'))
set(hAxL, 'YGrid','on')
Estoy usando xticklabel_rotate para girar las etiquetas en el eje x
Otros consejos
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow