.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gen_modules\examples_gallery\plot_laptimes_distribution.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_gen_modules_examples_gallery_plot_laptimes_distribution.py: Driver Laptimes Distribution Visualization ============================================= Visualizae different drivers' laptime distributions. .. GENERATED FROM PYTHON SOURCE LINES 5-19 .. code-block:: Python import seaborn as sns from matplotlib import pyplot as plt import fastf1 import fastf1.plotting # Enable Matplotlib patches for plotting timedelta values and load # FastF1's dark color scheme fastf1.plotting.setup_mpl(mpl_timedelta_support=True, misc_mpl_mods=False, color_scheme='fastf1') .. GENERATED FROM PYTHON SOURCE LINES 20-21 Load the race session .. GENERATED FROM PYTHON SOURCE LINES 21-25 .. code-block:: Python race = fastf1.get_session(2023, "Azerbaijan", 'R') race.load() .. GENERATED FROM PYTHON SOURCE LINES 26-29 Get all the laps for the point finishers only. Filter out slow laps (yellow flag, VSC, pitstops etc.) as they distort the graph axis. .. GENERATED FROM PYTHON SOURCE LINES 29-34 .. code-block:: Python point_finishers = race.drivers[:10] print(point_finishers) driver_laps = race.laps.pick_drivers(point_finishers).pick_quicklaps() driver_laps = driver_laps.reset_index() .. rst-class:: sphx-glr-script-out .. code-block:: none ['11', '1', '16', '14', '55', '44', '18', '63', '4', '22'] .. GENERATED FROM PYTHON SOURCE LINES 35-37 To plot the drivers by finishing order, we need to get their three-letter abbreviations in the finishing order. .. GENERATED FROM PYTHON SOURCE LINES 37-40 .. code-block:: Python finishing_order = [race.get_driver(i)["Abbreviation"] for i in point_finishers] print(finishing_order) .. rst-class:: sphx-glr-script-out .. code-block:: none ['PER', 'VER', 'LEC', 'ALO', 'SAI', 'HAM', 'STR', 'RUS', 'NOR', 'TSU'] .. GENERATED FROM PYTHON SOURCE LINES 41-43 First create the violin plots to show the distributions. Then use the swarm plot to show the actual laptimes. .. GENERATED FROM PYTHON SOURCE LINES 43-72 .. code-block:: Python # create the figure fig, ax = plt.subplots(figsize=(10, 5)) # Seaborn doesn't have proper timedelta support, # so we have to convert timedelta to float (in seconds) driver_laps["LapTime(s)"] = driver_laps["LapTime"].dt.total_seconds() sns.violinplot(data=driver_laps, x="Driver", y="LapTime(s)", hue="Driver", inner=None, density_norm="area", order=finishing_order, palette=fastf1.plotting.get_driver_color_mapping(session=race) ) sns.swarmplot(data=driver_laps, x="Driver", y="LapTime(s)", order=finishing_order, hue="Compound", palette=fastf1.plotting.get_compound_mapping(session=race), hue_order=["SOFT", "MEDIUM", "HARD"], linewidth=0, size=4, ) .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 74-75 Make the plot more aesthetic .. GENERATED FROM PYTHON SOURCE LINES 75-82 .. code-block:: Python ax.set_xlabel("Driver") ax.set_ylabel("Lap Time (s)") plt.suptitle("2023 Azerbaijan Grand Prix Lap Time Distributions") sns.despine(left=True, bottom=True) plt.tight_layout() plt.show() .. image-sg:: /gen_modules/examples_gallery/images/sphx_glr_plot_laptimes_distribution_001.png :alt: 2023 Azerbaijan Grand Prix Lap Time Distributions :srcset: /gen_modules/examples_gallery/images/sphx_glr_plot_laptimes_distribution_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 2.223 seconds) .. _sphx_glr_download_gen_modules_examples_gallery_plot_laptimes_distribution.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_laptimes_distribution.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_laptimes_distribution.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_laptimes_distribution.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_