繁体   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