如何使用一组点在MATLAB中绘制曲线

如何使用一组点在MATLAB中绘制曲线,matlab,graph,curve,linegraph,roc,Matlab,Graph,Curve,Linegraph,Roc,我正在尝试使用一组现有的值,使用以下命令绘制ROC曲线 plot(X1,Y1,'--rs',X2,Y2,'-*g'); 其中X1、Y1、X2和Y2是具有相同大小的矩阵 但是,此命令生成的线是直线 我怎样才能使它们成为曲线呢 谢谢 默认情况下,MATLAB使用直线近似在控制点之间绘制图形。如果需要,可以在点之间插值,以生成更逼真的图形。尝试使用'spline'选项,看看效果如何。同样地,计算出X1和X2的最小值和最大值,然后在最小值和最大值之间定义一个具有更细粒度的点网格。完成此操作后,将其放入

我正在尝试使用一组现有的值,使用以下命令绘制ROC曲线

plot(X1,Y1,'--rs',X2,Y2,'-*g');
其中
X1
Y1
X2
Y2
是具有相同大小的矩阵

但是,此命令生成的线是直线

我怎样才能使它们成为曲线呢

谢谢
默认情况下,MATLAB使用直线近似在控制点之间绘制图形。如果需要,可以在点之间插值,以生成更逼真的图形。尝试使用
'spline'
选项,看看效果如何。同样地,计算出
X1
X2
的最小值和最大值,然后在最小值和最大值之间定义一个具有更细粒度的点网格。完成此操作后,将其放入
interp1
并绘制曲线。比如:

%// Find dynamic range of domain for both Xs
minX1 = min(X1);
maxX1 = max(X1);
minX2 = min(X2);
maxX2 = max(X2);

%// Generate grid of points for both Xs
x1Vals = linspace(minX1, maxX1, 100);
x2Vals = linspace(minX2, maxX2, 100);

%// Interpolate the curves
y1Vals = interp1(X1, Y1, x1Vals, 'spline');
y2Vals = interp1(X2, Y2, x2Vals, 'spline');

%// Plot the results
plot(x1Vals,y1Vals,'--rs',x2Vals,y2Vals,'-*g');

生成从一端到另一端的点网格,我指定了其中的100个点。然后,我使用
interp1
,就像我们之前讨论的那样,指定控制点(
X1,Y1,X2,Y2
),然后指定我要插值的值。我使用插值后的输出值绘制曲线。

绘图
始终将数据与直线连接起来。通常的做法是将数据点放在一起,这样你就不会注意到我为你写了答案。你还需要帮助吗?