Matplotlib строит данные в порядке их предоставления.Вы можете отсортировать данные, если это необходимо.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([3, 5, 1, 2, 7, 4, 6, 9, 8])
y = np.array([8, 10, 3, 6, 8, 10, 10, 3, 6])
plt.subplot(121)
plt.plot(x,y, marker="o", label="unsorted")
plt.legend()
# now sort the values
plt.subplot(122)
plt.plot(np.sort(x),y[np.argsort(x)], marker="o", color="C3", label="sorted")
plt.legend()
plt.show()