From 4f89d4bd0c99ab2abeedf118033180c97ffe8efe Mon Sep 17 00:00:00 2001 From: hannah Date: Wed, 22 Jan 2025 03:47:19 -0500 Subject: [PATCH] Backport PR #29488: DOC: Update broken_barh example --- .../lines_bars_and_markers/broken_barh.py | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/galleries/examples/lines_bars_and_markers/broken_barh.py b/galleries/examples/lines_bars_and_markers/broken_barh.py index e1550385155a..c400c67cffe4 100644 --- a/galleries/examples/lines_bars_and_markers/broken_barh.py +++ b/galleries/examples/lines_bars_and_markers/broken_barh.py @@ -1,27 +1,34 @@ """ -=========== -Broken Barh -=========== +====================== +Broken horizontal bars +====================== -Make a "broken" horizontal bar plot, i.e., one with gaps +`~.Axes.broken_barh` creates sequences of horizontal bars. This example shows +a timing diagram. """ import matplotlib.pyplot as plt +import numpy as np + +# data is a sequence of (start, duration) tuples +cpu_1 = [(0, 3), (3.5, 1), (5, 5)] +cpu_2 = np.column_stack([np.linspace(0, 9, 10), np.full(10, 0.5)]) +cpu_3 = np.column_stack([10*np.random.random(61), np.full(61, 0.05)]) +cpu_4 = [(2, 1.7), (7, 1.2)] +disk = [(1, 1.5)] +network = np.column_stack([10*np.random.random(10), np.full(10, 0.05)]) -# Horizontal bar plot with gaps fig, ax = plt.subplots() -ax.broken_barh([(110, 30), (150, 10)], (10, 9), facecolors='tab:blue') -ax.broken_barh([(10, 50), (100, 20), (130, 10)], (20, 9), - facecolors=('tab:orange', 'tab:green', 'tab:red')) -ax.set_ylim(5, 35) -ax.set_xlim(0, 200) -ax.set_xlabel('seconds since start') -ax.set_yticks([15, 25], labels=['Bill', 'Jim']) # Modify y-axis tick labels -ax.grid(True) # Make grid lines visible -ax.annotate('race interrupted', (61, 25), - xytext=(0.8, 0.9), textcoords='axes fraction', - arrowprops=dict(facecolor='black', shrink=0.05), - fontsize=16, - horizontalalignment='right', verticalalignment='top') +# broken_barh(xranges, (ymin, height)) +ax.broken_barh(cpu_1, (5.8, 0.4)) +ax.broken_barh(cpu_2, (4.8, 0.4)) +ax.broken_barh(cpu_3, (3.8, 0.4)) +ax.broken_barh(cpu_4, (2.8, 0.4)) +ax.broken_barh(disk, (1.8, 0.4), color="tab:orange") +ax.broken_barh(network, (0.8, 0.4), color="tab:green") +ax.set_xlim(0, 10) +ax.set_yticks([6, 5, 4, 3, 2, 1], + labels=["CPU 1", "CPU 2", "CPU 3", "CPU 4", "disk", "network"]) +ax.set_title("Resource usage") plt.show()