首页 > 解决方案 > 如何切割连接的图形线?

问题描述

在此处输入图像描述 在此处输入图像描述

我将绘制一个图表,显示每个速度的时间。但是这些线在末端相互连接以开始像图片一样。如何切割连接的图形线?

标签: matplotlib

解决方案


此错误可能是因为您在 x 轴上绘制的数据未排序,并且您的 y 轴数据未与排序x数据配对。

为了说明这一点,考虑尝试绘制y=x^2

x = np.array([1,3,5,6,2,4,8,7])
y = np.array([1,9,25,36,4,16,64,49])

plt.plot(x,y)

在此处输入图像描述

Python 正在根据它们在数组中的索引绘制点并连接连续点之间的线。要以正确的顺序获取数据,您可以np.argsort对数组中的元素进行排序并返回已排序元素的索引。

xnew = x[np.argsort(x)]
ynew = y[np.argsort(x)]

plt.plot(xnew, ynew)

在此处输入图像描述

需要注意的是,我们要y根据它们的x值对值进行排序,这就是np.sort不使用的原因。

对于您的数据集,我将为排序索引创建一个变量

indx = np.argsort(mean_spd_per_time_array[:, 0])

然后创建新的xy变量来绘制

# Sort the data according to x values
x = mean_spd_per_time_array[:, 0][indx]
y = mean_spd_per_time_array[:, 1][indx]

推荐阅读