Main Content

plot

绘制 cfitsfit 对象

说明

曲面

示例

plot(sfit) 在当前坐标区 (gca) 的范围内绘制在 sfit 对象 sfit 中给定的曲面。如果当前坐标区不存在,该函数将在创建 sfit 所用数据的范围内绘制曲面。

plot(sfit,[x,y],z) 绘制 sfit 以及 xyz 的数据散点图。坐标区范围由 xy 的范围给出。

plot(___,Name=Value) 使用一个或多个名称-值参量指定选项,且支持上述适用于曲面的语法中的任何输入参量组合。例如,您可以指定绘图的类型和范围。

曲线

plot(cfit) 在当前坐标区 (gca) 范围内绘制在 cfit 对象 cfit 中给定的曲线。如果当前坐标区不存在,该函数将在创建 cfit 所用数据的范围内绘制曲线。

示例

plot(cfit,x,y) 绘制 cfit 以及 xy 的数据散点图。坐标区范围由 x 的范围给出。

plot(cfit,x,y,DataLineSpec) 指定用于绘制散点图数据的颜色、标记符号和线型。

plot(cfit,FitLineSpec,x,y,DataLineSpec) 指定 plot 用来绘制 cfit 中给定曲线的颜色、标记符号和线型。

plot(cfit,x,y,outliers) 指定要视为离群值的散点图数据,并以不同颜色绘制它们。

plot(cfit,x,y,outliers,OutlierLineSpec) 指定用来绘制离群值的颜色、标记符号和线型。

示例

plot(___,ptype) 使用上述曲线语法中的任何输入参量组合指定绘图类型。

plot(___,ptype,level) 指定当 ptype"predfunc""predobs" 时预测边界的置信水平。

曲面和曲线

plot(ax,___) 将图形绘制到由 ax 指定的坐标区而不是 gca 中。参量 ax 可以置于上述语法中的任何输入参量组合之前。

H = plot(___) 返回所绘制对象的句柄向量。

示例

全部折叠

加载 franke 数据集。

load franke

向量 xyz 包含从弗兰克二元测试函数生成的数据。

xyz 中的数据进行 Lowess 平滑模型拟合。

ls = fit([x,y],z,"lowess");

lssfit 对象,包含对数据进行 Lowess 平滑模型拟合的结果。

绘制 ls 并更改图窗的视图。

plot(ls)
view([19.5 40.0])

绘图显示,Lowess 平滑拟合是一个波浪形曲面,位于 z=0z=1.5 之间,横跨 xy 的值。

加载 titanium 数据集。将数据从行向量转换为列向量。

[x, y] = titanium;
x = x';
y = y';

x 包含温度测量值,y 包含钛属性的测量值。

xy 数据进行高斯模型拟合。

g = fit(x,y,"gauss2");

gcfit 对象,包含对数据进行高斯模型拟合的结果。

绘制 g 以及数据的散点图。

plot(g,x,y)

绘图显示 g 与大多数数据高度吻合,当 x 约为 900y 数据达到尖峰。

使用 linspacesin 函数为基线正弦信号生成一些数据。

xdata = linspace(0,2*pi,60)'; 
y0 = sin(xdata);

xdata 是一个由 02π 之间的 60 个点组成的向量,y0 是通过在 xdata 值处计算正弦函数得到的值向量。

使用 randn 函数从高斯分布生成噪声。

rng(0,"twister") %  For reproducibility
gnoise = y0.*randn(size(y0));

要生成冲激噪声,请首先使用 randpermround 函数创建一个随机索引向量。

leny0 = length(y0);
p = randperm(leny0);
stop = round(leny0/5);
idx = p(1:stop);

idx 是表示 y0 索引的整数向量。

使用 zeros 函数创建一个冲激噪声向量。然后,使用 sign 函数将值 -55 赋给噪声向量中的对应元素,即 idxy0 的元素分别为负值和正值的位置处。

szy = size(y0);
spnoise = zeros(szy);
yidx = y0(idx);
spnoise(idx) = 5*sign(yidx);

将该噪声向量加到 y0 中。

ydata = y0 + gnoise + spnoise;

ydata 是具有非恒定方差的含噪数据向量。

ydata 进行正弦模型拟合。

f = fittype("a*sin(b*x)"); 
fit1 = fit(xdata,ydata,f,StartPoint=[1 1]);

fit1 包含使用最小二乘进行正弦模型拟合的结果。

xdataydata 中与 fit1 中的模型相差 1.5 倍标准差以上的点创建一个离群值向量。

fdata = feval(fit1,xdata);
outliers = abs(fdata - ydata) > 1.5*std(ydata);

排除离群值后对数据进行重新拟合。

fit2 = fit(xdata,ydata,f,StartPoint=[1 1],...
           Exclude=outliers);

fit2 包含对排除离群值后的数据进行正弦模型拟合的结果。

使用稳健拟合算法进行第三个模型拟合。

fit3 = fit(xdata,ydata,f,StartPoint=[1 1],Robust="on");

fit3 包含使用 bisquare 权重拟合算法对数据进行正弦模型拟合的结果。

为了比较拟合模型,请绘制数据、离群值和拟合结果。用不同颜色和线型绘制每个拟合,用品红色星号绘制离群值。

plot(fit1,"r-",xdata,ydata,"k.",outliers,"m*") 
hold on
plot(fit2,"c--")
plot(fit3,"b:")
xlim([0 2*pi])
legend("data","outlier","fit1","fit2","fit3")

绘图用不同线条颜色和样式显示每个拟合。所有三个拟合都与大部分数据吻合。相对于其他两种拟合,fit1 与离群值的吻合程度更高。

绘制 fit1 的残差图。

figure 
plot(fit1,xdata,ydata,"co","residuals") 
hold on
xlabel("xdata")
ylabel("residuals")
hold off

绘图显示 fit1 的残差在 xdata 中的值范围内具有非恒定方差。

输入参数

全部折叠

要绘图的曲面拟合对象,指定为 sfit 对象。

要绘图的曲线拟合对象,指定为 cfit 对象。

散点图数据的 x 坐标,指定为数值列向量。绘制 cfit 对象时,在指定 x 时还必须指定 y。绘制 sfit 对象时,在指定 x 时还必须指定 yzxy 的大小必须相同。

数据类型: single | double

散点图数据的 y 坐标,指定为数值列向量。绘制 cfit 对象时,在指定 y 时还必须指定 x。绘制 sfit 对象时,在指定 y 时还必须指定 xzxy 的大小必须相同。

数据类型: single | double

散点图数据的 z 坐标,指定为数值列向量。仅当绘制 sfit 对象时,您才能指定 z,而且必须同时指定 xyzx 的大小必须相同。

数据类型: single | double

是否将散点图数据视为离群值的指示符,指定为逻辑表达式、索引向量或逻辑向量。仅当绘制 cfit 对象时,您才能指定 outliers

  • 逻辑表达式 - plot 将满足表达式的数据点视为离群值。

  • 索引向量 - plot 将在指定索引处的数据点视为离群值。

  • 逻辑向量 - plotoutlierstrue 的位置上的数据点视为离群值。您可以使用 excludedata 函数创建一个逻辑向量来指定离群值。

有关示例,请参阅从拟合中排除点

示例: x > 10x 值大于 10 的数据视为离群值。

示例: [1 10 25] 将在索引 11025 处的数据视为离群值。

示例: [zeros(100,1);ones(50,1)] 将最后 50 个数据点视为离群值。

数据类型: logical | single | double

散点图数据的线型、标记和颜色,指定为包含符号的字符向量或字符串标量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

仅当绘制 cfit 对象时,您才能指定 DataLineSpec

线型描述
-实线(默认)
--虚线
:点线
-.点划线
标记描述
o圆形
+加号
*星号
.
x叉号
s正方形
d菱形
^上三角
v下三角
>右三角
<左三角
p五角形
h六角形
颜色描述

y

黄色

m

品红

c

青色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

示例: "--or" 指定带有圆形标记的红色虚线。

数据类型: char | string

cfit 中给定曲线的线型、标记和颜色,指定为包含符号的字符向量或字符串标量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

线型描述
-实线(默认)
--虚线
:点线
-.点划线
标记描述
o圆形
+加号
*星号
.
x叉号
s正方形
d菱形
^上三角
v下三角
>右三角
<左三角
p五角形
h六角形
颜色描述

y

黄色

m

品红

c

青色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

示例: "--or" 指定带有圆形标记的红色虚线。

数据类型: char | string

用于绘制离群值的线型、标记和颜色,指定为包含符号的字符向量或字符串标量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

仅当绘制 cfit 对象时,您才能指定 OutlierLineSpec

线型描述
-实线(默认)
--虚线
:点线
-.点划线
标记描述
o圆形
+加号
*星号
.
x叉号
s正方形
d菱形
^上三角
v下三角
>右三角
<左三角
p五角形
h六角形
颜色描述

y

黄色

m

品红

c

青色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

示例: "--or" 指定带有圆形标记的红色虚线。

数据类型: char | string

曲线拟合的绘图类型,指定为以下项之一:

  • "fit" - 数据和拟合

  • "predfunc" - 带预测边界的数据和拟合

  • "predobs" - 带新观测值的预测边界的数据和拟合

  • "residuals" - 残差

  • "stresiduals" - 标准化残差(残差除以其标准差)

  • "deriv1" - 拟合的一阶导数

  • "deriv2" - 拟合的二阶导数

  • "integral" - 拟合的积分

数据类型: char | string

ptype"predfunc""predobs" 时曲线拟合的预测区间的置信水平,指定为 (0,1) 范围内的标量值。

示例: 0.99

数据类型: single | double

目标坐标区,指定为 Axes 对象。如果您不指定坐标区,则 plot 使用当前坐标区 (gca)。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: plot(sfit,[x,y],z,YLim=[0,1],Exclude=[1 10 25]) 指定 y 坐标轴范围和要视为离群值的点。

是否将散点图数据视为离群值的指示符,指定为逻辑表达式、索引向量或逻辑向量。

  • 逻辑表达式 - plot 将满足表达式的数据点视为离群值。

  • 索引向量 - plot 将在指定索引处的数据点视为离群值。

  • 逻辑向量 - plotoutlierstrue 的位置上的数据点视为离群值。您可以使用 excludedata 函数创建一个逻辑向量来指定离群值。

当指定 Exclude 时,您还必须指定 xyz 输入参量。

有关示例,请参阅从拟合中排除点

示例: Exclude=x>10x 值大于 10 的数据视为离群值。

示例: Exclude=[1 10 25] 将在索引 11025 处的数据视为离群值。

示例: Exclude=[zeros(100,1);ones(50,1)] 将最后 50 个数据点视为离群值。

数据类型: logical | single | double

曲面拟合绘图样式,指定为以下项之一:

  • "Surface" - 将 sfit 对象绘制为曲面(默认值)。

  • "PredFunc" - 将 sfit 对象绘制为具有函数预测边界的曲面。

  • "PredObs" - 将 sfit 对象绘制为具有新观测值的预测边界的曲面。

  • "Residuals" - 绘制 sfit 对象的残差。当您将 Style 指定为 "Residuals" 时,您还必须指定 xyz

  • "Contour" - 将 sfit 对象绘制为等高线图。

示例: Style="Contour"

数据类型: char | string

Style"PredFunc""PredObs" 时曲面拟合的预测区间的置信水平,指定为 (0,1) 范围内的标量值。

示例: Level=0.99

数据类型: single | double

曲面图的 x 轴范围,指定为一个包含两个元素的数值向量。如果您提供 xyz 数据,则坐标区范围由 xy 给出。否则,plot 将使用 sfit 中的坐标区范围。

示例: XLim=[0 1]

数据类型: single | double

曲面图的 y 轴范围,指定为一个包含两个元素的数值向量。如果您提供 xyz 数据,则坐标区范围由 xy 给出。否则,plot 将使用 sfit 中的坐标区范围。

示例: YLim=[-100 100]

数据类型: single | double

曲面图的坐标区的句柄,指定为 Axes 对象。

示例: Parent=ax

版本历史记录

在 R2006a 之前推出