2010-08-23 4 views
6

Ich möchte Daten x & y mit Fehlerbalken, ebar plotten und passen, yfitted, auf einem Semilog Plot. Dies scheint nicht zu funktionieren:Verwenden von errorbar() mit semilogy() in MATLAB?

Anstelle von Semilog Plot bekomme ich eine lineare Darstellung. Was soll ich anders machen?

Antwort

8

versuchen

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

oder

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

Art von Arbeiten, aber es verschraubt alle Fehlerbalken .. z. es kann nicht einige der vertikalen Linien zeichnen – AndyL

+2

Wie Sie wahrscheinlich feststellen, können Sie nicht das Protokoll von 0 oder eine negative Zahl – Marc

3

Dies ist, was die Dokumentation sagt.

„Wenn Sie versuchen, auf einem loglog, semilogx oder semilogy Plot zu einer Linearachse Modus Graph mit Halt hinzuzufügen, wird die Achse Modus bleiben, wie es ist, und die neuen Daten plotten als linear“

I würde vorschlagen, dass Sie nur die Reihenfolge Ihrer Plotten umkehren, das heißt.

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

Ich hatte das zuerst versucht. Es funktioniert nicht wirklich. :/ – AndyL

+0

Ich bin auf MATLAB R2009a – AndyL

+0

Es sollte funktionieren. Schreibst du >> Figur; >> festhalten; bevor Sie die Semilogie benutzen? Wenn Sie das tun, wird es nicht funktionieren. Schreiben Sie einfach die drei Zeilen in meinem Beitrag und Sie erhalten das gleiche Ergebnis wie oben. – Ghaul