2010-08-23 34 views
6

我想繪製數據x & y帶有錯誤條,ebar及其擬合,yfitted,在一個半對數圖上。這似乎沒有工作:在MATLAB中使用errorbar()和semilogy()?

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

而不是semilog情節我得到一個線性圖。我應該做什麼不同?

回答

8

嘗試

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

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

種類的作品,但它擰緊了所有的錯誤條。它無法畫出一些垂直線 – AndyL 2010-08-23 20:47:04

+2

正如你可能意識到的,你不能把0或負數的對數 – Marc 2010-08-23 22:37:40

3

這就是文檔說什麼。

「如果你試圖將一個雙對數,semilogx,或semilogy情節添加到與保持在直線軸模式圖,軸模式將保持原樣,新數據將繪製爲線性」

我會建議你只改變你的繪圖的順序,就是說。

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

我先試過。它並不實際工作。 :/ – AndyL 2010-08-23 20:50:28

+0

我在MATLAB R2009a – AndyL 2010-08-23 20:50:57

+0

它應該工作。你在寫字體嗎? >>堅持;在使用semilogy之前?如果你這樣做,它不會工作。只需在我的帖子中寫下三行,就可以得到與上面答案相同的結果。 – Ghaul 2010-08-24 07:33:20