2010-08-23 9 views
6

Vorrei stampare i dati x & con i cavi, ebar e il suo adattamento, yfitted, su un diagramma semilogato. Questo non sembra funzionare:Utilizzo di errorbar() con semilogy() in MATLAB?

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

Invece di una trama di semilog I ottengo una trama lineare. Cosa dovrei fare in modo diverso?

risposta

8

provare

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 di opere, ma svita tutti i satelliti su .. ad es. non riesce a disegnare alcune delle linee verticali – AndyL

+2

Come probabilmente ti rendi conto, non puoi prendere il registro di 0 o un numero negativo – Marc

3

Questo è ciò che dice la documentazione.

"Se si tenta di aggiungere un loglog, semilogx, o diagramma semilogy a un grafico modalità asse lineare con Hold on, il funzionamento come asse rimarrà così com'è e i nuovi dati saranno tracciare come lineare"

I suggerirebbe di invertire semplicemente l'ordine della tua trama, cioè.

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

che avevo provato prima. In realtà non funziona. :/ – AndyL

+0

Sono su MATLAB R2009a – AndyL

+0

Dovrebbe funzionare. Stai scrivendo >> figura; >> aspetta; prima di usare la semilogia? Se lo fai, non funzionerà. Scrivi le tre righe nel mio post e otterrai lo stesso risultato della risposta sopra. – Ghaul

Problemi correlati