[英]How to plot a curved line in MATLAB using a set of points
我正在尝试使用以下命令使用一组现有值绘制ROC曲线
plot(X1,Y1,'--rs',X2,Y2,'-*g');
其中X1
, Y1
, X2
和Y2
是具有相同大小的矩阵
但是,此命令产生的直线是直线。
我该如何使它们弯曲。
谢谢阿齐兹
默认情况下,MATLAB使用直线逼近法在控制点之间绘制图形。 如果需要,可以在点之间进行插值以生成更逼真的图形。 尝试将interp1
与'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');
linspace
生成了从一端到另一端的点的网格,我指定了其中的100个点。 然后,按照我们在您指定控制点( X1,Y1,X2,Y2
)的位置,然后指定要进行插值的值的方式,使用interp1
。 我在插值后使用输出值并绘制曲线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.