我有四个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'但这些都没有得到承认
问题的简化:我希望代表拟合物体的平面有一种颜色。每架飞机都有不同的飞机。
答案 0 :(得分:1)
从这个链接:
你可以尝试
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
结合使用(如上所述)。