2011-09-08 67 views
2

我使用MATLAB繪製時間序列的兩行...(最小值和最大值線)兩個時間序列圖和它們之間的陰影... MATLAB

我有在單點匯聚點在數據的末尾。

我想填充行之間的區域,然後在陰影區域頂部繪製其他行。

這裏是我的問題:

當我使用「填充」它不正是我想要它做的...但它繪製一條線從數據恢復到初始數據點的最後一個點。我如何擺脫它?

這裏是我的兩個例子很模糊的草圖:

image

image2

圖形下方的線就是我談論...

任何想法如何避免這種情況?

謝謝!

+0

相關的問題:MATLAB,在兩組數據中,一個數字線之間的區域填充(http://stackoverflow.com/questions/6245626/matlab-filling-in-the-two-sets-of-data-lines-in-one-figure) – Amro

回答

3

正如@Jonas解釋的(打敗我),你需要正確地排序兩個時間序列的數據。我再補充一個例子來指出:

%# first series 
x1 = linspace(pi/4, 5*pi/4, 100); 
y1 = cos(x1); 

%# second series 
x2 = linspace(pi/4, 5*pi/4, 100); 
y2 = sin(x2); 

subplot(121), fill([x1 x2], [y1 y2], 'r') 
subplot(122), fill([x1 fliplr(x2)], [y1 fliplr(y2)], 'r') 
hold on 
plot(x1,y1, 'Color','b', 'LineWidth',3) 
plot(x2,y2, 'Color','g', 'LineWidth',3) 

enter image description here

4

我猜你

fill([xData1;xData2],[yData1;yData2]) 

創建填充其中xData1是n乘1你的第一個曲線陣列X-數據。這會導致奇怪的多邊形,因爲多邊形的「角落」沒有正確排列。

相反,你應該做的

fill([xData1;xData2(end:-1:1)],[yData1;yData2(end:-1:1]) 

即翻轉兩個數據集之一的順序。

+0

+1我發表了一個例子來說明 – Amro

相關問題