I have written some code to show how I would go about solving this issue. To my knowledge, there is no way of colouring each line segment, therefore I have had to loop over each step, plotting each time (and picking the appropriate colour).
import matplotlib.pyplot as plt
import numpy
x = numpy.array([1, 1.5, 5, 1, 4, 4])
y = numpy.array([1, 2, 1, 3, 5, 5])
# calculate the absolute distance for each step
distances = numpy.abs(numpy.diff((x**2 + y**2)**0.5))
ax = plt.axes()
# pick a colormap, and define a normalization to take distances to the range 0-1
cmap = plt.get_cmap('jet')
norm = plt.normalize(min(distances), max(distances))
# loop through each walk segment, plotting the line as coloured by
# the distance of the segment, scaled with the norm and a colour chosen
# using the normed distance and the cmap
for i in range(1, len(x)):
distance = distances[i-1]
x0, y0 = x[i-1], y[i-1]
x1, y1 = x[i], y[i]
ax.plot([x0, x1], [y0, y1], '-', color=cmap(norm(distance)))
# put points for each observation (no colouring)
ax.scatter(x, y)
# create a mappable suitable for creation of a colorbar
import matplotlib.cm as cm
mappable = cm.ScalarMappable(norm, cmap)
mappable.set_array(distance)
# create the colorbar
cb = plt.colorbar(mappable)
cb.set_label('Distance / meters')
# add some additional information
plt.title("Person 1's walk path")
plt.xlabel('x / meters')
plt.ylabel('y / meters')
# add some additional text to show the total distance walked.
# The coordinates are in axes coordinates (ax.transAxes).
plt.text(0.99, 0.01, 'Total distance: %.02f meters' % numpy.sum(distances),
transform=ax.transAxes, horizontalalignment='right')
plt.show()

Hopefully the code and comments are sufficiently self documenting (the mappable part to create the colorbar is perhaps the hardest, and most tricky part, and you may not even want one!)