You are reading an old version of the documentation (v2.2.3). For the latest version see
Version 2.2.3
Fork me on GitHub


matplotlib.pyplot.violinplot(dataset, positions=None, vert=True, widths=0.5, showmeans=False, showextrema=True, showmedians=False, points=100, bw_method=None, hold=None, data=None)[source]

Make a violin plot.

Make a violin plot for each column of dataset or each vector in sequence dataset. Each filled area extends to represent the entire data range, with optional lines at the mean, the median, the minimum, and the maximum.

dataset : Array or a sequence of vectors.

The input data.

positions : array-like, default = [1, 2, ..., n]

Sets the positions of the violins. The ticks and limits are automatically set to match the positions.

vert : bool, default = True.

If true, creates a vertical violin plot. Otherwise, creates a horizontal violin plot.

widths : array-like, default = 0.5

Either a scalar or a vector that sets the maximal width of each violin. The default is 0.5, which uses about half of the available horizontal space.

showmeans : bool, default = False

If True, will toggle rendering of the means.

showextrema : bool, default = True

If True, will toggle rendering of the extrema.

showmedians : bool, default = False

If True, will toggle rendering of the medians.

points : scalar, default = 100

Defines the number of points to evaluate each of the gaussian kernel density estimations at.

bw_method : str, scalar or callable, optional

The method used to calculate the estimator bandwidth. This can be 'scott', 'silverman', a scalar constant or a callable. If a scalar, this will be used directly as kde.factor. If a callable, it should take a GaussianKDE instance as its only parameter and return a scalar. If None (default), 'scott' is used.

result : dict

A dictionary mapping each component of the violinplot to a list of the corresponding collection instances created. The dictionary has the following keys:



In addition to the above described arguments, this function can take a data keyword argument. If such a data argument is given, the following arguments are replaced by data[<arg>]:

  • All arguments with the following names: 'dataset'.