2017-06-13 102 views
1

是否可以擦除繪圖區域,而不需要直接處理輸入到繪圖的數據(後驗)?matlab擦除區域繪圖後驗

E.g.在y = x以下的區域保留上面的區域。

+0

不知道如何,但什麼樣的情節?只是線?也許一個示例圖,用代碼來生成它會很有用(編輯你的問題) – Steve

+0

有幾種方法可以這樣做,但哪一個最好,很大程度上取決於你想要隱藏的是什麼?它有什麼形狀?它是否受函數限制?它與座標軸中的位置有關嗎?你如何定義要隱藏的區域? – EBH

+0

我目前正在使用等值線圖,並且我想要隱藏低於某個曲線的繪圖級別的部分,那很可能是y = x – Peter

回答

2

您可以使用area白色外觀顏色空白給定線以下的地塊面積:

t = linspace(0,20,500); 
plot(t, sin(t)) % example plot 
yl = ylim; 
hold on 
y = .4 - t * .05; % example limit line 
area(t, y, yl(1), 'Facecolor', 'w', 'edgecolor', 'none'); 

enter image description here

+0

什麼是yl或ylim? – Peter

+1

'ylim'返回y軸的極限。這些被分配給變量'yl',以便它們可以在以後創建的區域中使用。 – Wolfie

+0

對不起,它不起作用。它會刪除ylim下面的所有內容(這是一個數字)。但不低於y,這是曲線 – Peter

1

這裏有一個方式,通過必要的東西密謀做到這一點,與nan取代所有其他值:

[X,Y,Z] = peaks; 
Z(X>Y) = nan; 
contour(X,Y,Z,20) 

covered_contour