2009-10-21 741 views
3

我想在MATLAB中繪製一些置信區間圖,但我完全不知道如何去做。我有一個.xls文件中的數據。如何在MATLAB中繪製置信區間?

有人可以給我一個提示,或有人知道繪製配置項的命令嗎?

回答

5

我不知道你所說的置信區間圖是什麼意思,但是這是如何繪製兩個例子正態分佈的-sided 95%CI:

alpha = 0.05;   % significance level 
mu = 10;    % mean 
sigma = 2;    % std 
cutoff1 = norminv(alpha, mu, sigma); 
cutoff2 = norminv(1-alpha, mu, sigma); 
x = [linspace(mu-4*sigma,cutoff1), ... 
    linspace(cutoff1,cutoff2), ... 
    linspace(cutoff2,mu+4*sigma)]; 
y = normpdf(x, mu, sigma); 
plot(x,y) 

xlo = [x(x<=cutoff1) cutoff1]; 
ylo = [y(x<=cutoff1) 0]; 
patch(xlo, ylo, 'b') 

xhi = [cutoff2 x(x>=cutoff2)]; 
yhi = [0 y(x>=cutoff2)]; 
patch(xhi, yhi, 'b') 

plot

+0

謝謝Amro .......但我想知道如何獲得如下圖所示的圖表: http://psycnet.apa.org/journals/bne/115/4/圖像/ bne_115_4_764_fig5a.gif 我想要在圖形中有變化的條紋,即如果圖表中存在較大變化,則條形變長,並且如果變化較低,則圖形應該具有較小的條形。 明白我的意思嗎? 期待.... – Haqan 2009-10-22 10:54:57

+1

我相信你要求的是'errorbar'函數:http://www.mathworks.com/access/helpdesk/help/techdoc/ref/errorbar.html – Amro 2009-10-22 15:07:03

+0

謝謝alooooot .......!我正在找到這個情節.... – Haqan 2009-10-22 15:37:12

3

參見例如, Matlab的文件交換,這些M文件:

+0

感謝RCS!因爲我是一個matlab中的起始者,你能告訴我如何運行這個m文件嗎?因爲我可以看到一個錯誤?我是否應該指定一些輸入參數或文件來繪製一個圖? – Haqan 2009-10-21 12:07:50

1

閱讀大量的線程後,這是我的嘗試。

enter image description here

% Get some random data 
x  = linspace(0.3, pi-0.3, 10); 
Data = sin(x) + randn(1, 10)/10; 
Data_sd = 0.1+randn(1,10)/30; 

% prepare it for the fill function 
x_ax = 1:10; 
X_plot = [x_ax, fliplr(x_ax)]; 
Y_plot = [Data-1.96.*Data_sd, fliplr(Data+1.96.*Data_sd)]; 

% plot a line + confidence bands 
hold on 
plot(x_ax, Data, 'blue', 'LineWidth', 1.2) 
fill(X_plot, Y_plot , 1,.... 
     'facecolor','blue', ... 
     'edgecolor','none', ... 
     'facealpha', 0.3); 
hold off 

主要是基於這樣一個問題:Plotting with transparency