Source code InfoField |
Python code
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# In[2]:
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
# In[3]:
# Set plotting style
plt.style.use("seaborn-white")
RECORD_TO_TEXT = {
"uci": "UCI Record",
"best": "Best Human Effort",
"unified": "Unified Record",
}
CURRENT_PALLETE = sns.color_palette()
PLOT_COLORS = {
"uci": CURRENT_PALLETE[0],
RECORD_TO_TEXT["uci"]: CURRENT_PALLETE[0],
"best": CURRENT_PALLETE[1],
RECORD_TO_TEXT["best"]: CURRENT_PALLETE[1],
"unified": CURRENT_PALLETE[2],
RECORD_TO_TEXT["unified"]: CURRENT_PALLETE[2],
}
WIDTH = 12
HEIGHT = 7
get_ipython().run_line_magic('matplotlib', 'inline')
# # Load the data
#
# I have already scraped the HTML, read it into Pandas, and cleaned it up. So I'll just load that cleaned data.
# In[4]:
df = pd.read_json("./hour_record_dataframe.json", orient="table")
# In[5]:
# Rename some riders who have *REALLY* long names
df = df.replace(
{
"Leontien Zijlaard-van Moorsel": "Leontien van Moorsel",
"Molly Shaffer Van Houweling": "Molly Van Houweling",
}
)
# In[6]:
df.head()
# # Plotting
# In[7]:
def draw_bands(ax, ticks=None):
"""Add grey bands to the plot.
Args:
ax: a matplotlib axes object.
ticks: a list of tick postions, to use instead of the ones that come
with ax.
"""
if ticks is None:
ticks = ax.get_xticks(minor=False)
for i in range(0, len(ticks), 2):
# Check for the end of the array
if i >= len(ticks) or i + 1 >= len(ticks):
return
# Draw a band
left_tick = ticks[i]
right_tick = ticks[i + 1]
plt.axvspan(left_tick, right_tick, color="0.97", zorder=-2)
ticks = ax.get_xticks(minor=False)
# In[8]:
def draw_legend(plt):
"""Draw the legend on the specified plot.
Args:
plt (matplotlib.pyplot): pyplot object
"""
leg = plt.legend(
loc="upper left",
fontsize=18,
ncol=1,
frameon=1,
fancybox=True,
# The bellow commands remove the lines in the legend
handlelength=0,
handletextpad=0,
markerscale=0,
)
# Turn on and theme the frame
frame = leg.get_frame()
frame.set_linewidth(1)
frame.set_alpha(1)
frame.set_facecolor("white")
frame.set_edgecolor("black")
# Set the legend text color to match the line color
handles, _ = ax.get_legend_handles_labels()
texts = leg.get_texts()
for _, text in zip(handles, texts):
text.set_color(PLOT_COLORS[text.get_text()])
fig.tight_layout()
# In[9]:
def annotate_point_with_name(row, color, nudges):
rider = row["rider"]
distance = row["distance (km)"]
date = row["date"]
text = f"{rider} ({distance} km) "
# Try to get nudges
adjust = nudges.get((rider, distance), (0, 0))
x_adjust = adjust[0] * 365.0 # Convert to years
x_pos = date + pd.to_timedelta(x_adjust, unit="D")
y_pos = distance + adjust[1]
plt.text(
x_pos,
y_pos,
text,
horizontalalignment="right",
verticalalignment="center",
color=color,
fontsize=16,
fontweight="bold",
)
# In[10]:
def plot_steps_and_markers(df, nudges, ax):
MAX_DATE = max(df["date"])
plt.sca(ax)
for record in df["record"].unique():
color = PLOT_COLORS[record]
df_tmp = df[df["record"] == record]
heights = list(df_tmp["distance (km)"].values)
years = list(df_tmp["date"].values)
# Exend to the end of the plot
heights += [heights[-1]]
years += [MAX_DATE]
plt.step(
x=years,
y=heights,
where="post",
linewidth=2.5,
color=color,
label=RECORD_TO_TEXT[record],
)
plt.plot(years[:-1], heights[:-1], "o", color=color, markersize=10)
for index, row in df_tmp.iterrows():
annotate_point_with_name(row, color, nudges)
# In[11]:
df_men = df[(df["gender"] == "men") & (df["success"] == True)]
fig, ax = plt.subplots(figsize=(WIDTH, HEIGHT))
annotation_nudge = {
("Eddy Merckx", 49.431): (9, 0.25),
("Chris Boardman", 49.441): (4, 0.25),
("Ondřej Sosenka", 49.7): (5, 0.33),
("Tony Rominger", 55.291): (0.2, -0.36),
}
ax.set_ylabel("Distance (km)", fontsize=20)
plt.title("Men's Hour Record Progression", fontsize=30)
plot_steps_and_markers(df_men, annotation_nudge, ax)
ax.tick_params(axis="both", which="major", labelsize=16)
draw_bands(ax)
draw_legend(ax)
_, x_current = ax.get_xlim()
ax.set_xlim("1966-01-01", x_current)
ticks = ax.get_xticks()
fig.patch.set_facecolor("white")
# Save to disk
for ext in ("png", "svg"):
fig.savefig(
"/tmp/mens_hour_records_progression.{ext}".format(ext=ext),
bbox_inches="tight",
transparent=False,
)
# In[12]:
df_women = df[(df["gender"] == "women") & (df["success"] == True)]
fig, ax = plt.subplots(figsize=(WIDTH, HEIGHT))
annotation_nudge = {
("Maria Cressari", 41.471): (10, -0.27),
("Keetie van Oosten", 43.082): (18, -0.25),
("Jeannie Longo-Ciprelli", 44.767): (20.5, -0.25),
("Jeannie Longo-Ciprelli", 45.094): (20.5, -0.25),
("Leontien van Moorsel", 46.065): (19.5, -0.25),
("Jeannie Longo-Ciprelli", 44.933): (0, 0.25),
("Yvonne McGregor", 47.411): (1.5, 0.3),
("Jeannie Longo-Ciprelli", 48.159): (3, 0.3),
("Catherine Marsal", 47.112): (0, -0.15),
("Molly Van Houweling", 46.273): (0, 0.1),
("Evelyn Stevens", 47.98): (0, -0.1),
("Vittoria Bussi", 48.007): (3, 0.35),
("Joscelin Lowden", 48.405): (0.5, 0.35),
}
ax.set_ylabel("Distance (km)", fontsize=20)
plt.title("Women's Hour Record Progression", fontsize=30)
plot_steps_and_markers(df_women, annotation_nudge, ax)
ax.tick_params(axis="both", which="major", labelsize=16)
draw_bands(ax, ticks[1:-1])
draw_legend(ax)
ax.set_ylim(41, 49.5)
fig.patch.set_facecolor("white")
# Save to disk
for ext in ("png", "svg"):
fig.savefig(
"/tmp/womens_hour_records_progression.{ext}".format(ext=ext),
bbox_inches="tight",
transparent=False,
)
Data
Data (collapsed)
|
{
"data": [
{
"age": 27.0,
"date": "1972-10-25T00:00:00.000",
"distance (km)": 49.431,
"equipment": "Drop handlebar, round steel tubing frame, wire spokes.",
"gender": "men",
"index": 0,
"record": "uci",
"rider": "Eddy Merckx",
"success": true,
"velodrome": "Agust\u00edn Melgar (333 meters outdoor concrete high-altitude), Mexico City, Mexico"
},
{
"age": null,
"date": "1972-11-25T00:00:00.000",
"distance (km)": 41.471,
"equipment": "4.7-kilogram Colnago, drop handlebars, wire spokes.[12]",
"gender": "women",
"index": 1,
"record": "uci",
"rider": "Maria Cressari",
"success": true,
"velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
},
{
"age": 29.0,
"date": "1978-09-16T00:00:00.000",
"distance (km)": 43.082,
"equipment": "RIH superlight steel frame, drop handlebars, wire spokes.[13][14]",
"gender": "women",
"index": 2,
"record": "uci",
"rider": "Keetie van Oosten",
"success": true,
"velodrome": "Munich, Germany"
},
{
"age": 32.0,
"date": "1984-01-19T00:00:00.000",
"distance (km)": 50.808,
"equipment": "Bullhorn handlebar, oval steel tubing frame, disc wheels.",
"gender": "men",
"index": 3,
"record": "best",
"rider": "Francesco Moser",
"success": true,
"velodrome": "Agust\u00edn Melgar (333 meters outdoor concrete high-altitude), Mexico City, Mexico"
},
{
"age": 32.0,
"date": "1984-01-23T00:00:00.000",
"distance (km)": 51.151,
"equipment": "Bullhorn handlebar, oval steel tubing frame, disc wheels.",
"gender": "men",
"index": 4,
"record": "best",
"rider": "Francesco Moser",
"success": true,
"velodrome": "Agust\u00edn Melgar (333 meters outdoor concrete high-altitude), Mexico City, Mexico"
},
{
"age": 27.0,
"date": "1986-09-20T00:00:00.000",
"distance (km)": 44.77,
"equipment": null,
"gender": "women",
"index": 5,
"record": "best",
"rider": "Jeannie Longo-Ciprelli",
"success": true,
"velodrome": "Colorado Springs, United States"
},
{
"age": 28.0,
"date": "1987-09-23T00:00:00.000",
"distance (km)": 44.933,
"equipment": null,
"gender": "women",
"index": 6,
"record": "best",
"rider": "Jeannie Longo-Ciprelli",
"success": true,
"velodrome": "Colorado Springs, United States"
},
{
"age": 30.0,
"date": "1989-10-01T00:00:00.000",
"distance (km)": 46.352,
"equipment": null,
"gender": "women",
"index": 7,
"record": "best",
"rider": "Jeannie Longo-Ciprelli",
"success": true,
"velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
},
{
"age": 27.0,
"date": "1993-07-17T00:00:00.000",
"distance (km)": 51.596,
"equipment": "Graeme Obree-style \"praying mantis\" handlebar, round steel tubing frame, carbon tri-spoke wheels.",
"gender": "men",
"index": 8,
"record": "best",
"rider": "Graeme Obree",
"success": true,
"velodrome": "Vikingskipet (250 meters indoor wood sea-level), Hamar, Norway"
},
{
"age": 24.0,
"date": "1993-07-23T00:00:00.000",
"distance (km)": 52.27,
"equipment": "Triathlon handlebar, carbon airfoil tubing frame, carbon 4-spoke wheels.",
"gender": "men",
"index": 9,
"record": "best",
"rider": "Chris Boardman",
"success": true,
"velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
},
{
"age": 28.0,
"date": "1994-04-27T00:00:00.000",
"distance (km)": 52.713,
"equipment": "Graeme Obree-style \"praying mantis\" handlebar, round steel tubing frame, carbon tri-spoke wheels.",
"gender": "men",
"index": 10,
"record": "best",
"rider": "Graeme Obree",
"success": true,
"velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
},
{
"age": 30.0,
"date": "1994-09-02T00:00:00.000",
"distance (km)": 53.04,
"equipment": "Wide triathlon handlebar, carbon monocoque aero frame, disc wheels.",
"gender": "men",
"index": 11,
"record": "best",
"rider": "Miguel Indurain",
"success": true,
"velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
},
{
"age": 33.0,
"date": "1994-10-22T00:00:00.000",
"distance (km)": 53.832,
"equipment": "Triathlon handlebar, oval steel tubing frame, disc wheels.",
"gender": "men",
"index": 12,
"record": "best",
"rider": "Tony Rominger",
"success": true,
"velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
},
{
"age": 33.0,
"date": "1994-11-05T00:00:00.000",
"distance (km)": 55.291,
"equipment": "Triathlon handlebar, oval steel tubing frame, disc wheels.",
"gender": "men",
"index": 13,
"record": "best",
"rider": "Tony Rominger",
"success": true,
"velodrome": "Velodrome du Lac (250 meters indoor wood sea-level), Bordeaux, France"
},
{
"age": 24.0,
"date": "1995-04-29T00:00:00.000",
"distance (km)": 47.112,
"equipment": "Corima carbon composite bicycle. Corima 12 spoke/Corima disc wheels. Tri-Bar.[16]",
"gender": "women",
"index": 14,
"record": "best",
"rider": "Catherine Marsal",
"success": true,
"velodrome": "Bordeaux, France"
},
{
"age": 34.0,
"date": "1995-06-17T00:00:00.000",
"distance (km)": 47.411,
"equipment": "Terry Dolan bicycle. Cinelli tri-bar, Corima disc wheels",
"gender": "women",
"index": 15,
"record": "best",
"rider": "Yvonne McGregor",
"success": true,
"velodrome": "Manchester, England"
},
{
"age": 28.0,
"date": "1996-09-06T00:00:00.000",
"distance (km)": 56.375,
"equipment": "Graeme Obree \"superman-style\" handlebar, carbon monocoque aero frame, 5-spoke front and rear disc wheel.",
"gender": "men",
"index": 16,
"record": "best",
"rider": "Chris Boardman",
"success": true,
"velodrome": "Manchester Velodrome (250 meters indoor wood sea-level), Manchester, UK"
},
{
"age": 38.0,
"date": "1996-10-26T00:00:00.000",
"distance (km)": 48.159,
"equipment": null,
"gender": "women",
"index": 17,
"record": "best",
"rider": "Jeannie Longo-Ciprelli",
"success": true,
"velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
},
{
"age": 26.0,
"date": "2000-10-18T00:00:00.000",
"distance (km)": 43.501,
"equipment": "Perkins, Columbus steel tubing, box section rims, wire spokes",
"gender": "women",
"index": 18,
"record": "uci",
"rider": "Anna Wilson-Millward",
"success": true,
"velodrome": "Vodafone Arena, Melbourne, Australia"
},
{
"age": 32.0,
"date": "2000-10-27T00:00:00.000",
"distance (km)": 49.441,
"equipment": "Drop handlebar, carbon fibre tubing frame, wire spokes.",
"gender": "men",
"index": 19,
"record": "uci",
"rider": "Chris Boardman",
"success": true,
"velodrome": "Manchester Velodrome (250 meters indoor wood sea-level), Manchester, UK"
},
{
"age": 42.0,
"date": "2000-11-05T00:00:00.000",
"distance (km)": 44.767,
"equipment": "Drop handlebar, steel tubing frame, wire spokes.",
"gender": "women",
"index": 20,
"record": "uci",
"rider": "Jeannie Longo-Ciprelli",
"success": true,
"velodrome": "Agust\u00edn Melgar Olympic Velodrome, Mexico City, Mexico"
},
{
"age": 42.0,
"date": "2000-12-07T00:00:00.000",
"distance (km)": 45.094,
"equipment": "Drop handlebar, steel tubing frame, wire spokes.",
"gender": "women",
"index": 21,
"record": "uci",
"rider": "Jeannie Longo-Ciprelli",
"success": true,
"velodrome": "Agust\u00edn Melgar, Mexico City, Mexico"
},
{
"age": 33.0,
"date": "2003-10-01T00:00:00.000",
"distance (km)": 46.065,
"equipment": "Drop handlebar, Koga chromoly tubing frame, box section rims, wire spokes[15]",
"gender": "women",
"index": 22,
"record": "uci",
"rider": "Leontien Zijlaard-van Moorsel",
"success": true,
"velodrome": "Agust\u00edn Melgar, Mexico City, Mexico"
},
{
"age": 29.0,
"date": "2005-07-19T00:00:00.000",
"distance (km)": 49.7,
"equipment": "Drop handlebar, carbon fibre tubing frame, wire spokes.",
"gender": "men",
"index": 23,
"record": "uci",
"rider": "Ond\u0159ej Sosenka",
"success": true,
"velodrome": "Krylatskoye (333 meters indoor wood sea-level), Moscow, Russia"
},
{
"age": 43.0,
"date": "2014-09-18T00:00:00.000",
"distance (km)": 51.11,
"equipment": "Triathlon handlebar, Trek carbon fibre tubing frame, disc wheels,[38] chain on a 55/14 gear ratio.[39]",
"gender": "men",
"index": 24,
"record": "unified",
"rider": "Jens Voigt",
"success": true,
"velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
},
{
"age": 24.0,
"date": "2014-10-30T00:00:00.000",
"distance (km)": 51.852,
"equipment": "Triathlon handlebar, SCOTT carbon fibre tubing frame, disc wheels, chain on a 55/13 gear ratio.[39]",
"gender": "men",
"index": 25,
"record": "unified",
"rider": "Matthias Br\u00e4ndle",
"success": true,
"velodrome": "World Cycling Centre Aigle, Switzerland (altitude 380m)"
},
{
"age": 24.0,
"date": "2015-01-31T00:00:00.000",
"distance (km)": 51.3,
"equipment": "Triathlon handlebar, Cervelo carbon fibre tubing frame, disc wheels.",
"gender": "men",
"index": 26,
"record": "unified",
"rider": "Jack Bobridge",
"success": false,
"velodrome": "Darebin International Sports Centre, Melbourne, Australia"
},
{
"age": 24.0,
"date": "2015-02-08T00:00:00.000",
"distance (km)": 52.491,
"equipment": "Triathlon handlebar, BMC carbon fibre tubing frame, disc wheels, chain on a 56/14 gear ratio.[43]",
"gender": "men",
"index": 27,
"record": "unified",
"rider": "Rohan Dennis",
"success": true,
"velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
},
{
"age": 30.0,
"date": "2015-02-25T00:00:00.000",
"distance (km)": 52.221,
"equipment": "Koga TeeTeeTrack with Mavic Comete Track wheels, Koga components, Rotor cranks with a KMC (3/32\") chain on a 58/14 gear ratio.[45]",
"gender": "men",
"index": 28,
"record": "unified",
"rider": "Thomas Dekker",
"success": false,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico"
},
{
"age": 37.0,
"date": "2015-02-28T00:00:00.000",
"distance (km)": 45.502,
"equipment": "Ridley Arena Carbon track bike with triathlon bars, Pro rear disc wheel, front disk wheel, Shimano Dura-Ace groupset.[84]",
"gender": "women",
"index": 29,
"record": "unified",
"rider": "Sarah Storey",
"success": false,
"velodrome": "Lee Valley VeloPark, London, United Kingdom"
},
{
"age": 34.0,
"date": "2015-03-14T00:00:00.000",
"distance (km)": 50.016,
"equipment": "Ridley carbon track bike with front and rear disc wheels, triathlon handlebars.",
"gender": "men",
"index": 30,
"record": "unified",
"rider": "Gustav Larsson",
"success": false,
"velodrome": "Manchester Velodrome, Manchester, United Kingdom"
},
{
"age": 26.0,
"date": "2015-05-02T00:00:00.000",
"distance (km)": 52.937,
"equipment": "Canyon Speedmax WHR carbon track bike, with Campagnolo Pista disc wheels, Pista crankset with 54 or 55 or 56t chainring.[49][50]",
"gender": "men",
"index": 31,
"record": "unified",
"rider": "Alex Dowsett",
"success": true,
"velodrome": "Manchester Velodrome, Manchester, United Kingdom[48]"
},
{
"age": 35.0,
"date": "2015-06-07T00:00:00.000",
"distance (km)": 54.526,
"equipment": "Pinarello Bolide HR, SRAM Crankset,[52] modified front fork, custom printed handlebars,[53] 58/14 gear ratio.[54]",
"gender": "men",
"index": 32,
"record": "unified",
"rider": "Bradley Wiggins",
"success": true,
"velodrome": "Lee Valley VeloPark, London, United Kingdom[51]"
},
{
"age": 42.0,
"date": "2015-09-12T00:00:00.000",
"distance (km)": 46.273,
"equipment": "Cervelo T4 track bike with double Mavic Comete discwheels, running 56/14 gear ratio.[76][86]",
"gender": "women",
"index": 33,
"record": "unified",
"rider": "Molly Shaffer Van Houweling",
"success": true,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)"
},
{
"age": 41.0,
"date": "2016-01-22T00:00:00.000",
"distance (km)": 46.882,
"equipment": "Cervelo T4 track bike.[87]",
"gender": "women",
"index": 34,
"record": "unified",
"rider": "Bridie O'Donnell",
"success": true,
"velodrome": "Super-Drome, Adelaide, Australia"
},
{
"age": 32.0,
"date": "2016-02-27T00:00:00.000",
"distance (km)": 47.98,
"equipment": "Specialized Shiv modified for the track, SRAM groupset with 53t or 54t chainrings, Zipp 900 front wheel, Zipp Super 9 rear disc, Bioracer skinsuit.",
"gender": "women",
"index": 35,
"record": "unified",
"rider": "Evelyn Stevens",
"success": true,
"velodrome": "OTC Velodrome, Colorado, United States of America (altitude 1840m)"
},
{
"age": null,
"date": "2016-03-21T00:00:00.000",
"distance (km)": 48.255,
"equipment": null,
"gender": "men",
"index": 36,
"record": "unified",
"rider": "Micah Gross",
"success": false,
"velodrome": "Velodrome Suisse, Grenchen, Switzerland"
},
{
"age": 37.0,
"date": "2016-09-16T00:00:00.000",
"distance (km)": 53.037,
"equipment": "Modified Diamondback Serios time trial bike, fitted with special HED disc wheels[56] and a gearing of 53/13[57]",
"gender": "men",
"index": 37,
"record": "unified",
"rider": "Tom Zirbel",
"success": false,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico"
},
{
"age": 31.0,
"date": "2017-01-28T00:00:00.000",
"distance (km)": 52.114,
"equipment": "Argon 18 Electron Pro, Mavic Comete discs, SRM + Fibre-Lyte chain ring, and a gearing of 54/13",
"gender": "men",
"index": 38,
"record": "unified",
"rider": "Martin Toft Madsen",
"success": false,
"velodrome": "Ballerup Super Arena, Ballerup, Denmark[59]"
},
{
"age": null,
"date": "2017-02-25T00:00:00.000",
"distance (km)": 48.337,
"equipment": "RB1213 track bike with double DT Swiss disc wheels",
"gender": "men",
"index": 39,
"record": "unified",
"rider": "Marc Dubois",
"success": false,
"velodrome": "Velodrome Suisse, Grenchen, Switzerland"
},
{
"age": 32.0,
"date": "2017-07-02T00:00:00.000",
"distance (km)": 49.47,
"equipment": "BMC Trackmachine TR01, Mavic Comete disc wheels, Custom Prinzwear TT Suit",
"gender": "men",
"index": 40,
"record": "unified",
"rider": "Wojciech Ziolkowski",
"success": false,
"velodrome": "Arena Pruszk\u00f3w, Pruszkow, Poland"
},
{
"age": 32.0,
"date": "2017-07-21T00:00:00.000",
"distance (km)": 47.791,
"equipment": null,
"gender": "women",
"index": 41,
"record": "unified",
"rider": "Jaime Nielsen",
"success": false,
"velodrome": "Avantidrome, Cambridge, New Zealand"
},
{
"age": 30.0,
"date": "2017-10-07T00:00:00.000",
"distance (km)": 47.576,
"equipment": "Giant Trinity track bike with Walker Brothers double-disc wheels",
"gender": "women",
"index": 42,
"record": "unified",
"rider": "Vittoria Bussi",
"success": false,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico"
},
{
"age": 18.0,
"date": "2017-10-07T00:00:00.000",
"distance (km)": 52.311,
"equipment": "Giant trinity track bike, Mavic disc wheels",
"gender": "men",
"index": 43,
"record": "unified",
"rider": "Mikkel Bjerg",
"success": false,
"velodrome": "Odense Cykelbane, Odense, Denmark[62]"
},
{
"age": 32.0,
"date": "2018-01-11T00:00:00.000",
"distance (km)": 52.324,
"equipment": "Argon 18 Electron Pro, Mavic Comete discs, SRM + Fibre-Lyte chain ring, and a gearing of 54/13",
"gender": "men",
"index": 44,
"record": "unified",
"rider": "Martin Toft Madsen",
"success": false,
"velodrome": "Ballerup Super Arena, Ballerup, Denmark[63]"
},
{
"age": 33.0,
"date": "2018-07-26T00:00:00.000",
"distance (km)": 53.63,
"equipment": "Argon 18 Electron Pro, Mavic Comete discs, SRM + Fibre-Lyte chain ring, and a gearing of 54/13",
"gender": "men",
"index": 45,
"record": "unified",
"rider": "Martin Toft Madsen",
"success": false,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico[64]"
},
{
"age": 29.0,
"date": "2018-08-22T00:00:00.000",
"distance (km)": 52.757,
"equipment": "Customized Giant Trinity road frame, with a gearing of 58/14",
"gender": "men",
"index": 46,
"record": "unified",
"rider": "Dion Beukeboom",
"success": false,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico[66]"
},
{
"age": 31.0,
"date": "2018-09-13T00:00:00.000",
"distance (km)": 48.007,
"equipment": "Endura skin suit, HVMN Ketone, and Liv Bike [94]",
"gender": "women",
"index": 47,
"record": "unified",
"rider": "Vittoria Bussi",
"success": true,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)"
},
{
"age": 19.0,
"date": "2018-10-04T00:00:00.000",
"distance (km)": 53.73,
"equipment": "Giant trinity track bike, Mavic disc wheels",
"gender": "men",
"index": 48,
"record": "unified",
"rider": "Mikkel Bjerg",
"success": false,
"velodrome": "Odense Cykelbane, Odense, Denmark[67]"
},
{
"age": 27.0,
"date": "2019-04-16T00:00:00.000",
"distance (km)": 55.089,
"equipment": "Ridley Arena Hour Record bike, 330mm custom handlebars, custom handlebar extensions specifically moulded for Campenaerts's forearms, F-Surface Plus aero paint, Campagnolo drivetrain, full carbon disc Campagnolo Ghibli wheels, C-Bear bottom bracket bearings.[69]",
"gender": "men",
"index": 49,
"record": "unified",
"rider": "Victor Campenaerts",
"success": true,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)[68]"
},
{
"age": 34.0,
"date": "2019-08-13T00:00:00.000",
"distance (km)": 53.975,
"equipment": null,
"gender": "men",
"index": 50,
"record": "unified",
"rider": "Martin Toft Madsen",
"success": false,
"velodrome": "Odense Cykelbane, Odense, Denmark[70]"
},
{
"age": 22.0,
"date": "2019-10-06T00:00:00.000",
"distance (km)": 52.061,
"equipment": null,
"gender": "men",
"index": 51,
"record": "unified",
"rider": "Mathias Norsgaard",
"success": false,
"velodrome": "Odense Cykelbane, Odense, Denmark[71]"
},
{
"age": 30.0,
"date": "2020-09-18T00:00:00.000",
"distance (km)": 52.116,
"equipment": null,
"gender": "men",
"index": 52,
"record": "unified",
"rider": "Claudio Imhof",
"success": false,
"velodrome": "Zurich, Switzerland"
},
{
"age": 32.0,
"date": "2020-10-23T00:00:00.000",
"distance (km)": 51.304,
"equipment": null,
"gender": "men",
"index": 53,
"record": "unified",
"rider": "Lionel Sanders",
"success": false,
"velodrome": "Milton, Canada[72]"
},
{
"age": 33.0,
"date": "2021-09-30T00:00:00.000",
"distance (km)": 48.405,
"equipment": "LeCol x McLaren Skinsuit, Poc Tempor Helmet Argon18 Electron Pro track frame, WattShop Cratus chainrings (64x15 gear ratio) and WattShop Pentaxia Olympic/Anemoi handlebars/extensions, FFWD Disc-T SL wheels (front and rear w/ 23c Vittoria Pista tyres). Lowden may have used an 8.5mm pitch chain supplied by New Motion Labs.[83]",
"gender": "women",
"index": 54,
"record": "unified",
"rider": "Joscelin Lowden",
"success": true,
"velodrome": "Velodrome Suisse in Grenchen, Switzerland (altitude 450m)"
},
{
"age": 33.0,
"date": "2021-11-03T00:00:00.000",
"distance (km)": 54.555,
"equipment": "Factor Hanzo time trial bike (track version), Aerocoach Aten chainring with 61/13 gearing, Aerocoach Ascalon extensions, custom Vorteq skinsuit, HED Volo disc wheels, Izumi Super Toughness KAI chain[74]",
"gender": "men",
"index": 55,
"record": "unified",
"rider": "Alex Dowsett",
"success": false,
"velodrome": "Aguascalientes Bicentenary Velodrome, Aguascalientes, Mexico (altitude 1887m)[73]"
},
{
"age": 35.0,
"date": "2022-05-23T00:00:00.000",
"distance (km)": 49.254,
"equipment": null,
"gender": "women",
"index": 56,
"record": "unified",
"rider": "Ellen van Dijk",
"success": true,
"velodrome": "Velodrome Suisse in Grenchen, Switzerland (altitude 450m)"
},
{
"age": 30.0,
"date": "2022-08-19T00:00:00.000",
"distance (km)": 55.548,
"equipment": "Prototype Pinarello Bolide F HR 3D[75]",
"gender": "men",
"index": 57,
"record": "unified",
"rider": "Daniel Bigham",
"success": true,
"velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
},
{
"age": 26.0,
"date": "2022-10-08T00:00:00.000",
"distance (km)": 56.792,
"equipment": "Pinarello Bolide F HR 3D, 64t chain ring, 14t rear sprocket, Princeton Carbonworks wheelset, custom Bioracer Katana suit[75]",
"gender": "men",
"index": 58,
"record": "unified",
"rider": "Filippo Ganna",
"success": true,
"velodrome": "Velodrome Suisse, Grenchen, Switzerland (altitude 450m)"
}
],
"schema": {
"fields": [
{
"name": "index",
"type": "integer"
},
{
"name": "date",
"type": "datetime"
},
{
"name": "rider",
"type": "string"
},
{
"name": "age",
"type": "number"
},
{
"name": "velodrome",
"type": "string"
},
{
"name": "distance (km)",
"type": "number"
},
{
"name": "equipment",
"type": "string"
},
{
"name": "success",
"type": "boolean"
},
{
"name": "gender",
"type": "string"
},
{
"name": "record",
"type": "string"
}
],
"pandas_version": "1.4.0",
"primaryKey": [
"index"
]
}
}
|
|