Consider this dataset points.txt. Write a script that reads this dataset and plots the second column of the dataset versus the first column as the following,

Now write another script that applies Kmeans clustering technique to this data set with an input number of clusters equal to 3.

%matplotlib notebook
import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure( figsize=(4.5, 4) \
, dpi= 200 \
, facecolor='w' \
, edgecolor='w' \
) # create figure object
ax = fig.add_subplot(1,1,1) # Get the axes instance

ax.plot( Data.x \
, Data.y \
, 'r.' \
, markersize = 1 \
) # plot with color red, as points

ax.set_xlabel('X')
ax.set_ylabel('Y')
fig.savefig('points.png', dpi=200) # save the figure to an external file
plt.show() # display the figure

%matplotlib notebook

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.cluster import KMeans

Point = np.array(np.transpose([Data.x,Data.y]))

PointClusterID = KMeans ( n_clusters = 3 \
, random_state = 344 \
, init = "k-means++" \
, n_init = 100 \
, max_iter = 300 \
, tol = 0.001 \
).fit_predict(Point)

fig = plt.figure()
ax = fig.add_subplot(1,1,1) # Get the axes instance

plt.scatter ( Point[:, 0] \
, Point[:, 1] \
, c = PointClusterID \
, s = 1 \
)

fig.savefig('clusters3.png', dpi=200) # save the figure to an external file