2010-08-23 6 views
6

Me gustaría trazar los datos x & y con barras de error, ebar, y su ajuste, yfitted, en un gráfico semilogarítmico. Esto no parece funcionar:Usando errorbar() con semilogía() en MATLAB?

figure; 
hold on; 
errorbar(x,y,ebar); 
semilogy(x,yfitted); 

En lugar de la gráfica semilogarca, obtengo una gráfica lineal. ¿Qué debería estar haciendo diferente?

Respuesta

8

tratar

h = errorbar(x,y,ebar); 
set(get(h,'Parent'), 'YScale', 'log') 

o

ax = axes(); 
errorbar(ax, x,y,ebar); 
set(ax, 'YScale', 'log'); 
+0

tipo de trabajos pero atornilla todas las barras de error .. p. Ej. no dibuja algunas de las líneas verticales – AndyL

+2

Como probablemente se dé cuenta, no puede tomar el registro de 0 o un número negativo – Marc

3

Esto es lo que dice la documentación.

"Si intenta añadir un loglog, semilogx, o el argumento semilogy a un gráfico de modo de eje lineal con control sobre el modo de eje seguirá siendo como es y los nuevos datos trazará tan lineal"

I sugeriría que simplemente invierta el orden de su trazado, eso es.

semilogy(x,yfitted); 
hold on; 
errorbar(x,y,ebar); 
+0

Lo había intentado primero. En realidad, no funciona. :/ – AndyL

+0

Estoy en MATLAB R2009a – AndyL

+0

Debería funcionar. ¿Estás escribiendo >> figura? >> espera; antes de usar semilogy? Si lo haces, no funcionará. Solo escribe las tres líneas en mi publicación y obtendrás el mismo resultado que la respuesta anterior. – Ghaul

Cuestiones relacionadas