在MATLAB中从SFIT更改曲面图的颜色

时间:2017-02-17 15:09:26

标签: matlab plot polynomials

我有四个SFIT对象,我用:

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

绘制3D表面。 但是我想给每个表面一个独特的颜色,就像它在绘图功能中一样。通常这是通过给出参数' r'或者表示颜色的东西,例如:

plot(f1,'r');

但是,如果我在这里这样做,我会收到以下错误:

  

使用绘图时出错没有给出' r'的值。名称 - 值对参数   需要一个名称后跟一个值。

     

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

     

sfit / plot中的错误(第44行)[XY,Z,in,out,style,level,hParent] =   iParseInputs(obj,varargin {:});

这表明必须有一个String,但哪一个?我已经尝试了类似于' Color'或者' LineColor'但这些都没有得到承认

问题的简化:我希望代表拟合物体的平面有一种颜色。每架飞机都有不同的飞机。

1 个答案:

答案 0 :(得分:1)

从这个链接:

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

你可以尝试

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图,请参阅此前三维案例的答案:

MATLAB - Plot multiple surface fits in one figure

您的相关代码是:

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

因此,您正在寻找的“神奇单词”是'FaceColor',与set结合使用(如上所述)。