Вы ошиблись с plt.scatter(X[0,:],X[1,:],marker='.')
X[:,0]
возвращает все значения x первого столбца
X[:,1]
возвращает все значения y первого столбца
X[0,:]
возвращает все значения x первой строки
X[1,:]
возвращает все значения y первой строки
Итак, то, что вы написали, отображает первую точку данных, а следующее - набор данных:
plt.scatter(X[:,0],X[:,1],marker='.')