pandas.Series.plot.bar — pandas 2.2.3 documentation (original) (raw)

Series.plot.bar(x=None, y=None, **kwargs)[source]#

Vertical bar plot.

A bar plot is a plot that presents categorical data with rectangular bars with lengths proportional to the values that they represent. A bar plot shows comparisons among discrete categories. One axis of the plot shows the specific categories being compared, and the other axis represents a measured value.

Parameters:

xlabel or position, optional

Allows plotting of one column versus another. If not specified, the index of the DataFrame is used.

ylabel or position, optional

Allows plotting of one column versus another. If not specified, all numerical columns are used.

colorstr, array-like, or dict, optional

The color for each of the DataFrame’s columns. Possible values are:

**kwargs

Additional keyword arguments are documented inDataFrame.plot().

Returns:

matplotlib.axes.Axes or np.ndarray of them

An ndarray is returned with one matplotlib.axes.Axesper column when subplots=True.

Examples

Basic plot.

df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]}) ax = df.plot.bar(x='lab', y='val', rot=0)

../../_images/pandas-Series-plot-bar-1.png

Plot a whole dataframe to a bar plot. Each column is assigned a distinct color, and each row is nested in a group along the horizontal axis.

speed = [0.1, 17.5, 40, 48, 52, 69, 88] lifespan = [2, 8, 70, 1.5, 25, 12, 28] index = ['snail', 'pig', 'elephant', ... 'rabbit', 'giraffe', 'coyote', 'horse'] df = pd.DataFrame({'speed': speed, ... 'lifespan': lifespan}, index=index) ax = df.plot.bar(rot=0)

../../_images/pandas-Series-plot-bar-2.png

Plot stacked bar charts for the DataFrame

ax = df.plot.bar(stacked=True)

../../_images/pandas-Series-plot-bar-3.png

Instead of nesting, the figure can be split by column withsubplots=True. In this case, a numpy.ndarray ofmatplotlib.axes.Axes are returned.

axes = df.plot.bar(rot=0, subplots=True) axes[1].legend(loc=2)

../../_images/pandas-Series-plot-bar-4.png

If you don’t like the default colours, you can specify how you’d like each column to be colored.

axes = df.plot.bar( ... rot=0, subplots=True, color={"speed": "red", "lifespan": "green"} ... ) axes[1].legend(loc=2)

../../_images/pandas-Series-plot-bar-5.png

Plot a single column.

ax = df.plot.bar(y='speed', rot=0)

../../_images/pandas-Series-plot-bar-6.png

Plot only selected categories for the DataFrame.

ax = df.plot.bar(x='lifespan', rot=0)

../../_images/pandas-Series-plot-bar-7.png