簡體   English   中英

在MATLAB中從SFIT更改表面圖的顏色

[英]Change the color of a surface plot from SFIT in MATLAB

我有四個SFIT對象,可以使用它們繪制:

figure;
hold on;
plot(f1);
plot(f2);
plot(f3);
plot(f4);

這將繪制3D表面。 但是,我想給每個表面一種獨特的顏色,就像在plot函數中一樣。 通常,這是通過給參數“ r”或表示顏色的東西來完成的,例如:

plot(f1,'r');

但是,如果我在這里這樣做,則會出現以下錯誤:

使用繪圖時出錯沒有給“ r”賦值。 名稱/值對參數需要一個名稱,后跟一個值。

sfit / plot> iParseInputs中的錯誤(第231行)p.parse(parameterValuePairs {:});

擬合/繪圖錯誤(第44行)[XY,Z,輸入,輸出,樣式,級別,hParent] = iParseInputs(obj,varargin {:});

這表明必須提供一個字符串,但是哪一個呢? 我已經嘗試過“顏色”或“線色”之類的東西,但是這些未被識別

問題的簡化:我希望表示擬合對象的平面具有一種顏色。 每架飛機應有不同的飛機。

從此鏈接:

https://uk.mathworks.com/matlabcentral/answers/153208-how-can-i-make-the-contour-plot-of-an-sfit-object-resemble-the-plot-generation-by-the-等高線

你可以試試

f1 = fit([x y], z, 'poly23');
ph = plot(f1, 'Style', 'Contour');
set(ph, 'Fill', 'off', 'LineColor', 'auto');

set文件

https://uk.mathworks.com/help/matlab/ref/set.html


編輯

上面的建議僅顯示2D圖,有關3D情況,請參見此先前的SO答案:

MATLAB-在一張圖中繪制多個曲面擬合

與您相關的代碼是:

figure; 
h = plot(f1); 
set(h(1),'FaceColor','r');

因此,您要查找的“魔術字”是'FaceColor' ,它與set結合使用(如上所述)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM