Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4a80e64

Browse files
committed
Fix violinplot support list of pandas.Series
1 parent 3a8e75e commit 4a80e64

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

lib/matplotlib/axes/_axes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7892,6 +7892,8 @@ def violinplot(self, dataset, positions=None, vert=True, widths=0.5,
78927892
"""
78937893

78947894
def _kde_method(X, coords):
7895+
if hasattr(X, 'values'): # support pandas.Series
7896+
X = X.values
78957897
# fallback gracefully if the vector contains only one value
78967898
if np.all(X[0] == X):
78977899
return (X[0] == coords).astype(float)

lib/matplotlib/tests/test_axes.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3060,6 +3060,16 @@ def test_violinplot_single_list_quantiles(fig_test, fig_ref):
30603060
ax.violinplot(data, quantiles=[[0.1, 0.3, 0.9]])
30613061

30623062

3063+
@check_figures_equal(extensions=["png"])
3064+
def test_violinplot_pandas_series(fig_test, fig_ref, pd):
3065+
np.random.seed(110433579)
3066+
s1 = pd.Series(np.random.normal(size=7), index=[9, 8, 7, 6, 5, 4, 3])
3067+
s2 = pd.Series(np.random.normal(size=9), index=list('ABCDEFGHI'))
3068+
s3 = pd.Series(np.random.normal(size=11))
3069+
fig_test.subplots().violinplot([s1, s2, s3])
3070+
fig_ref.subplots().violinplot([s1.values, s2.values, s3.values])
3071+
3072+
30633073
def test_manage_xticks():
30643074
_, ax = plt.subplots()
30653075
ax.set_xlim(0, 4)

0 commit comments

Comments
 (0)