What is the equivalence regarding distance covered when you are swimming or you are jogging? Based on the most recent olympic records in athletics and swimming, I shall try to establish a broad-brush approach to the equivalence between the covered distance in both cases, even for different swimming strokes.
Below I compile all the necessary olympic records, where it will be used the next notation: A(Athletics), SF(Swimming, free style), SC(Swimming, breaststroke), SM(Swimming, butterfly), SB(Swimming, backstroke). Regardind the gender, M and F.
In [6]:
#Imports
%pylab inline
import numpy as np
#Class
class ListTable(list):
""" Overridden list class which takes a 2-dimensional list of
the form [[1,2,3],[4,5,6]], and renders an HTML Table in
IPython Notebook. """
def _repr_html_(self):
html = ["<table>"]
for row in self:
html.append("<tr>")
for col in row:
html.append("<td>{0}</td>".format(col))
html.append("</tr>")
html.append("</table>")
return ''.join(html)
In [7]:
#Male records for Athletics
print( 'Male records for Athletics' )
records_A_M = ListTable()
records_A_M.append(['Distance [m]', 'Time [s]', 'Olympic event'])
#Events
records_A_M.append([100, 9.58, 'y'])
records_A_M.append([200, 19.19, 'y'])
records_A_M.append([400, 43.18, 'y'] )
records_A_M.append([800, 100.91, 'y'])
records_A_M.append([1000, 131.96, 'n'])
records_A_M.append([1500, 206.00, 'y'])
records_A_M.append([1609.3, 223.13, 'n'])
records_A_M.append([2000, 284.79, 'n'])
records_A_M.append([3000, 440.67, 'n'])
records_A_M.append([5000, 757.35, 'y'])
records_A_M.append([10000, 1577.53, 'y'])
records_A_M.append([20000, 3386.00, 'n'])
records_A_M.append([25000, 4345.40, 'n'])
records_A_M.append([30000, 4345.40, 'n'])
records_A_M.append([42195, 7203.23, 'y'])
records_A_M.append([100000, 22413.40, 'n'])
#Plain data
A_M = np.array(records_A_M[1:])[:,(0,1)]
#Print
records_A_M
Out[7]:
In [4]:
#Female records for Athletics
print( 'Female records for Athletics' )
records_A_F = ListTable()
records_A_F.append(['Distance [m]', 'Time [s]', 'Olympic event'])
#Events
records_A_F.append([100, 10.49, 'y'])
records_A_F.append([200, 21.34, 'y'])
records_A_F.append([300, 35.30, 'n'] )
records_A_F.append([400, 47.60, 'y'] )
records_A_F.append([800, 113.28, 'y'])
records_A_F.append([1000, 148.98, 'n'])
records_A_F.append([1500, 230.46, 'y'])
records_A_F.append([1609.3, 252.56, 'n'])
records_A_F.append([2000, 325.36, 'n'])
records_A_F.append([3000, 486.11, 'n'])
records_A_F.append([5000, 851.15, 'y'])
records_A_F.append([10000, 1771.78, 'y'])
records_A_F.append([20000, 3926.60, 'n'])
records_A_F.append([25000, 5225.90, 'n'])
records_A_F.append([30000, 6350.00, 'n'])
records_A_F.append([42195, 8125.00, 'y'])
records_A_F.append([100000, 23591.00, 'n'])
#Plain data
A_F = np.array(records_A_F[1:])[:,(0,1)]
#Print
records_A_F
Out[4]:
In [12]:
#Male records for Swimming, free style
print( 'Male records for Swimming, free style' )
records_SF_M = ListTable()
records_SF_M.append(['Distance [m]', 'Time [s]', 'Olympic event'])
#Events
records_SF_M.append([50, 20.91, 'y'])
records_SF_M.append([100, 46.91, 'y'])
records_SF_M.append([200, 102.00, 'y'])
records_SF_M.append([400, 220.07, 'y'])
records_SF_M.append([800, 452.12, 'y'])
records_SF_M.append([1500, 871.02, 'y'])
#Plain data
SF_M = np.array(records_SF_M[1:])[:,(0,1)]
#Print
records_SF_M
Out[12]:
In [19]:
#Female records for Swimming, free style
print( 'Female records for Swimming, free style' )
records_SF_F = ListTable()
records_SF_F.append(['Distance [m]', 'Time [s]', 'Olympic event'])
#Events
records_SF_F.append([50, 23.73, 'y'])
records_SF_F.append([100, 52.07, 'y'])
records_SF_F.append([200, 112.98, 'y'])
records_SF_F.append([400, 239.15, 'y'])
records_SF_F.append([800, 493.86, 'y'])
records_SF_F.append([1500, 936.53, 'y'])
#Plain data
SF_F = np.array(records_SF_F[1:])[:,(0,1)]
#Print
records_SF_F
Out[19]:
In [30]:
plt.figure( figsize=(8,8) )
plt.loglog(A_M.T[0], A_M.T[1], 'o-', label='A_M' )
plt.loglog(A_F.T[0], A_F.T[1], 'o-', label='A_F' )
plt.loglog(SF_M.T[0], SF_M.T[1], 'o-', label='FS_M' )
plt.loglog(SF_F.T[0], SF_F.T[1], 'o-', label='FS_F' )
plt.grid( )
plt.ylabel( 'Time of the event [s]' )
plt.xlabel( 'Distance of the event [m]' )
plt.title( 'Distance vs time spent in each event' )
plt.legend( loc='upper left', fancybox=True )
Out[30]:
In [ ]: