español matlab plot

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: