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()
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: