我正绘制一个有N个节点和M个边的绘图。从节点A到节点B以及节点B到A可以有一条边,所以我不能用直线画出两条线。我怎样才能让其中一个弯曲,以便与另一个区分开来?这里是我的代码,在j和k之间绘制一条直线。如何在Matlab中绘制曲线
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
我正绘制一个有N个节点和M个边的绘图。从节点A到节点B以及节点B到A可以有一条边,所以我不能用直线画出两条线。我怎样才能让其中一个弯曲,以便与另一个区分开来?这里是我的代码,在j和k之间绘制一条直线。如何在Matlab中绘制曲线
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
您将需要定义要绘制的中间点。
然后您可以手动定义它们,或者查看样条插值。
使用样条插值,您只需要一个中间点来确定完整曲线。
在MATLAB中,你可以找到演示spline2d
这样做。下面是它的要点:
% end points
X = [0 1];
Y = [0 0];
% intermediate point (you have to choose your own)
Xi = mean(X);
Yi = mean(Y) + 0.25;
Xa = [X(1) Xi X(2)];
Ya = [Y(1) Yi Y(2)];
t = 1:numel(Xa);
ts = linspace(min(t),max(t),numel(Xa)*10); % has to be a fine grid
xx = spline(t,Xa,ts);
yy = spline(t,Ya,ts);
plot(xx,yy); hold on; % curve
plot(X,Y,'or') % end points
plot(Xi,Yi,'xr') % intermediate point
在splined2
,其用于更大的一组点,但没有中间点。如果你只是想让你的积分顺利连接,那么值得一看。
而不是使一个弯曲,偏移,或以其它方式,可以使用不同linestyle
S为不同的方向:1
线:plot(..., 'Linestyle', '-', 'Linewidth', 1)
2行:plot(..., 'Linestyle', '.-', 'Linewidth', 3)
这会让你的线条在不同的方向上有所区别,而不需要在空间上任意移动。
哦谢谢它有帮助! – Sara 2012-03-05 01:14:03
非常感谢您的回复! – Sara 2012-03-04 05:34:25