Skip to content

Commit 121c21d

Browse files
committed
ENH: Add grouped_bar() method
1 parent dc63ec7 commit 121c21d

File tree

8 files changed

+416
-0
lines changed

8 files changed

+416
-0
lines changed

doc/_embedded_plots/grouped_bar.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import matplotlib.pyplot as plt
2+
3+
categories = ['A', 'B']
4+
data0 = [1.0, 3.0]
5+
data1 = [1.4, 3.4]
6+
data2 = [1.8, 3.8]
7+
8+
fig, ax = plt.subplots(figsize=(4, 2.2))
9+
ax.grouped_bar(
10+
[data0, data1, data2],
11+
tick_labels=categories,
12+
labels=['dataset 0', 'dataset 1', 'dataset 2'],
13+
colors=['#1f77b4', '#58a1cf', '#abd0e6'],
14+
)
15+
ax.legend()

doc/api/axes_api.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ Basic
6767
Axes.bar
6868
Axes.barh
6969
Axes.bar_label
70+
Axes.grouped_bar
7071

7172
Axes.stem
7273
Axes.eventplot

doc/api/pyplot_summary.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ Basic
6161
bar
6262
barh
6363
bar_label
64+
grouped_bar
6465
stem
6566
eventplot
6667
pie
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Grouped bar charts
2+
------------------
3+
4+
The new method `~.Axes.grouped_bar()` simplifies the creation of grouped bar charts
5+
significantly. It supports different input data types (lists of datasets, dicts of
6+
datasets, data in 2D arrays, pandas DataFrames), and allows for easy customization
7+
of placement via controllable distances between bars and between bar groups.
8+
9+
Example:
10+
11+
.. plot::
12+
:include-source: true
13+
14+
import matplotlib.pyplot as plt
15+
16+
categories = ['A', 'B']
17+
datasets = {
18+
'dataset 0': [1.0, 3.0],
19+
'dataset 1': [1.4, 3.4],
20+
'dataset 2': [1.8, 3.8],
21+
}
22+
23+
fig, ax = plt.subplots(figsize=(4, 2.2))
24+
ax.grouped_bar(datasets, tick_labels=categories)
25+
ax.legend()

0 commit comments

Comments
 (0)