主要内容

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(cfit,FitLineSpec,x,y,DataLineSpec,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])

Figure contains an axes object. The axes object contains an object of type surface.

绘图显示,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)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Fitted curve.

绘图显示 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,xdata,ydata,outliers) 
hold on
plot(fit2)
plot(fit3)
xlim([0 2*pi])
legend("data","outlier","fit1","fit2","fit3")

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 5 objects of type line. One or more of the lines displays its values using only markers These objects represent data, outlier, fit1, fit2, fit3.

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

绘制 fit1 的残差图。

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

Figure contains an axes object. The axes object with xlabel xdata, ylabel residuals contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Zero line.

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

加载 census 数据集并使用变量 cdatepop 进行多项式拟合。这些变量分别包含人口统计年份和人口规模的数据。将 1850 年之前的所有日期视为离群值。

load census
fitresult = fit(cdate,pop,"poly2",Exclude=cdate<1850)
fitresult = 
     Linear model Poly2:
     fitresult(x) = p1*x^2 + p2*x + p3
     Coefficients (with 95% confidence bounds):
       p1 =    0.006709  (0.005497, 0.00792)
       p2 =      -24.15  (-28.81, -19.5)
       p3 =   2.175e+04  (1.728e+04, 2.621e+04)

使用默认线型绘制 cfit 对象 fitresult

plot(fitresult,cdate,pop,cdate<1850)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 3 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Excluded data, Fitted curve.

要修改线型,您可以为绘图指定以下一个或多个参数:DataLineSpecFitLineSpecOutlierLineSpec。在此示例中,将数据线型设置为蓝色的点,拟合线型设置为红色实线,离群值线型设置为绿色加号。

plot(fitresult,"r-",cdate,pop,"b.",cdate<1850,"g+")

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 3 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Excluded data, Fitted curve.

输入参数

全部折叠

要绘图的曲面拟合对象,指定为 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

限制

对于指定了约束点的拟合对象,无法计算预测函数 ("predfunc") 和预测观测值 ("predobs") 的边界。该软件将绘制指定边界内的 NaN 值。

版本历史记录

在 R2006a 之前推出

全部展开