español - Cómo obtener flechas en los ejes en la trama de MATLAB?
plot matlab español (2)
La caja de herramientas de matemática simbólica tiene provisiones para hacer estas flechas , pero sin esa caja de herramientas te ves obligado a dibujar las flechas tú mismo. El siguiente código debería ser útil para este propósito:
% determine position of the axes
axp = get(gca,''Position'');
% determine startpoint and endpoint for the arrows
xs=axp(1);
xe=axp(1)+axp(3)+0.04;
ys=axp(2);
ye=axp(2)+axp(4)+0.05;
% make the arrows
annotation(''arrow'', [xs xe],[ys ys]);
annotation(''arrow'', [xs xs],[ys ye]);
% remove old box and axes
box off
set(gca,''YTick'',[])
set(gca,''XTick'',[])
set(gca,''YColor'',get(gca,''Color''))
set(gca,''XColor'',get(gca,''Color''))
El único inconveniente es que para algunos tamaños de figura de ventana tendrá un borde blanco de 1 píxel debajo de las flechas, y establecer la propiedad LineWidth de los ejes a un valor pequeño ridículo no ayuda.
Pero para imprimir, el pequeño borde blanco no debería ser relevante.
Quiero trazar algo como esto:
x = 0:0.01:10;
f = @(x) 50* 1.6.^(-x-5);
g = @(x) 50* 1.6.^(+x-10);
plot(x, f(x));
hold on
plot(x, g(x));
No puedo conseguir ejes similares a los de esta figura:
Sé que puedo eliminar las líneas superior y derecha como en esta pregunta , pero no sé cómo colocar las flechas en los bordes.
No necesito las anotaciones adicionales, pero me gustaría eliminar las marcas en los ejes. Sé cómo hacer esto cuando los ejes son "normales", pero no estoy seguro si se debe hacer de otra manera cuando los ejes ya están manipulados.
¿Alguien sabe como hacer esto?
Bueno, no digas que no te lo advertí :)
% Some bogus functions
f = @(x) 50* 1.6.^(-x-5);
g = @(x) 50* 1.6.^(+x-10);
% Point where they meet
xE = 2.5;
yE = f(xE);
% Plot the bogus functions
figure(1), clf, hold on
x = 0:0.2:5;
plot(x,f(x),''r'', x,g(x),''b'', ''linewidth'', 2)
% get rid of standard axes decorations
set(gca, ''Xtick'', [], ''Ytick'', [], ''box'', ''off'')
% Fix the axes sizes
axis([0 5 0 5])
% the equilibrium point
plot(xE, yE, ''k.'', ''markersize'', 20)
% the dashed lines
line([xE 0; xE xE], [0 yE; yE yE], ''linestyle'', ''--'', ''color'', ''k'')
% the arrows
xO = 0.2;
yO = 0.1;
patch(...
[5-xO -yO; 5-xO +yO; 5.0 0.0], ...
[yO 5-xO; -yO 5-xO; 0 5], ''k'', ''clipping'', ''off'')
% the squishy wiggly line pointing to the "equilibrium" text
h = @(x)0.5*(x+0.2) + 0.1*sin((x+0.2)*14);
x = 2.7:0.01:3.5;
plot(x, h(x), ''k'', ''linewidth'', 2)
% the static texts
text(xE-yO, -0.2, ''Q^*'', ''fontweight'', ''bold'')
text(-2*yO, yE, ''P^*'', ''fontweight'', ''bold'')
text(-2*yO, 4, ''Price'', ''rotation'', 90, ''fontsize'', 14)
text( 4, -0.2, ''Quantity'', ''fontsize'', 14)
text( .5, 4.2, ''Demand'', ''fontsize'', 14, ''rotation'', -55)
text( 4.0, 3.3, ''Supply'', ''fontsize'', 14, ''rotation'', +55)
text( 3.6, 2.1, ''Equilibrium'', ''fontsize'', 14)
Resultado: