.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/10-showcase-car_crashes.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_examples_10-showcase-car_crashes.py: ==================== Horizontal bar chart ==================== .. GENERATED FROM PYTHON SOURCE LINES 7-113 .. image-sg:: /examples/images/sphx_glr_10-showcase-car_crashes_001.png :alt: 10 showcase car crashes :srcset: /examples/images/sphx_glr_10-showcase-car_crashes_001.png :class: sphx-glr-single-img .. code-block:: Python import numpy as np import seaborn as sns import matplotlib.pyplot as plt sns.set_theme(style="whitegrid") # Initialize the matplotlib figure fig, ax = plt.subplots(num=1, clear=True) # Load the example car crash dataset crashes = sns.load_dataset("car_crashes").sort_values("total", ascending=False).iloc[:10] # Plot the total crashes sns.set_color_codes("pastel") sns.barplot(x="total", y="abbrev", data=crashes, label="Total", color="b") # Plot the crashes where alcohol was involved sns.set_color_codes("muted") sns.barplot(x="alcohol", y="abbrev", data=crashes, label="Alcohol-involved", color="b") # Add a legend and informative axis label ax.legend(ncol=2, loc="lower right", frameon=True, bbox_to_anchor=[1, 1]) ax.set(xlim=(0, 24.8), ylim=(9.6, -0.6), ylabel="", xlabel="Automobile collisions per billion miles") sns.despine(left=True, bottom=True) import mpl_visual_context.patheffects as pe from mpl_pe_fancy_bar import BarTransformBase, BarToRoundBar from matplotlib.path import Path from matplotlib.transforms import Affine2D from svgpath2mpl import parse_path s="M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" icon = parse_path(s) class CustomBar(BarTransformBase): def __init__(self, radius=0.3, dh=0.5, orientation="vertical"): super().__init__(orientation) self._radius = radius self._dh = dh def _get_surface(self, h): v0 = Affine2D().rotate_deg(90).transform(icon.vertices / 512. - 0.5) vertices = v0 * self._radius + [0, h-self._dh] circle = Path(vertices=vertices, codes=icon.codes) return circle from mpl_visual_context.patheffects_shadow import ShadowPath cb1 = BarToRoundBar(orientation="horizontal", dh=0.5) cb2 = CustomBar(orientation="horizontal", radius=0.5, dh=0.6) shadow = ShadowPath(115, 3) pe1 = [ cb1, cb1 | pe.ClipPathSelf() | shadow | pe.HLSModify(l="60%"), cb2 | shadow | pe.HLSModify(l="40%"), cb2 | pe.FillColor("w") ] for p in ax.containers[0]: p.set_path_effects(pe1) pe1 = [ cb1 | pe.FillOnly(), cb2 | pe.FillColor("w") ] for p in ax.containers[1]: p.set_path_effects(pe1) from mpl_visual_context.axes_panel import InsetDivider from mpl_visual_context.axes_panel import add_panel divider = InsetDivider(ax) panel = add_panel(divider, "left", "ticklabels", pad=0.0, path_effects=[]) for sp in panel.spines.values(): sp.set_visible(False) fc = "gold" fig.patch.set_fc(fc) ax.patch.set_fc(fc) panel.patch.set_visible(False) from mpl_visual_context.legend_helper import ( extract_offset_boxes_from_legend, ) from matplotlib.offsetbox import HPacker from matplotlib.offsetbox import AnchoredOffsetbox leg_title, oblist = extract_offset_boxes_from_legend(ax.legend_) pack = HPacker(pad=0.0, sep=10, children=oblist) box = AnchoredOffsetbox("center", child=pack, pad=0, frameon=False) legend_panel = add_panel(divider, "top", "empty", pad=0.0) legend_panel.add_artist(box) legend_panel.add_to_extent_list(box) legend_panel.grid(False) ax.legend_.remove() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.269 seconds) .. _sphx_glr_download_examples_10-showcase-car_crashes.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 10-showcase-car_crashes.ipynb <10-showcase-car_crashes.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 10-showcase-car_crashes.py <10-showcase-car_crashes.py>` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: 10-showcase-car_crashes.zip <10-showcase-car_crashes.zip>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_