matlab中虚线的外观不均匀。例如:
x = [121.2802 112.5784 115.0855 109.0412 99.1158 103.9001];
y = [-25.8392 -24.9378 -25.1976 -24.5714 -23.5433 -24.0389];
plot(x,y,'--k','linewidth',1.2)
print -r600 -dtiff test.tif
破折号在该行的某些部分不会分开显示。这是因为积分不均匀吗?有什么建议?谢谢。
答案 0 :(得分:2)
没有问题不是matlab它是你的变量。 Matlab用(x(i),y(i))
与(x(i+1),y(i+1))
汇总用虚线表示。但是你的数据没有排序。
这里唯一发生的事情是你在彼此之上绘制两条线,这导致你的非虚线部分。如果您只想要虚线,请在绘制数据前对其进行排序。
修改1
z= [x' ,y'];
z= (sortrows(z))';
x2=fliplr(z(1,:));
y2=fliplr(z(2,:));
plot(x2,y2,'--k','linewidth',1.2)
这是一种对数据进行排序的方法。我正在做的是我在z中按行排列x,y。然后我使用sortrows根据第一行排序所有行。然后我转置结果矩阵,以便你有新的coloumn向量。之后,我使用fliplr翻转第一个到最后一个元素,依此类推(反转你的数据,因为你的原始数据从120变为100,我不知道你以后是否想要使用这些数据)。然后我绘制它。
希望有所帮助
修改2
由丹尼斯发布:
z= [x' ,y'];
z= (sortrows(z))';
z=flipud(z);
plot(x2,y2,'--k','linewidth',1.2)