pandas.Series.plot.bar#
- Series.plot.bar(x=None, y=None, color=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:
A single color string referred to by name, RGB or RGBA code, for instance ‘red’ or ‘#a98d19’.
A sequence of color strings referred to by name, RGB or RGBA code, which will be used for each column recursively. For instance [‘green’,’yellow’] each column’s bar will be filled in green or yellow, alternatively. If there is only a single column to be plotted, then only the first color from the color list will be used.
A dict of the form {column name : color}, so that each column will be colored accordingly. For example, if your columns are called a and b, then passing {‘a’: ‘green’, ‘b’: ‘red’} will color bars for column a in green and bars for column b in red.
- **kwargs
Additional keyword arguments are documented in
DataFrame.plot()
.
- Returns:
- matplotlib.axes.Axes or np.ndarray of them
An ndarray is returned with one
matplotlib.axes.Axes
per column whensubplots=True
.
See also
DataFrame.plot.barh
Horizontal bar plot.
DataFrame.plot
Make plots of a DataFrame.
matplotlib.pyplot.bar
Make a bar plot with matplotlib.
Examples
Basic plot.
>>> df = pd.DataFrame({"lab": ["A", "B", "C"], "val": [10, 30, 20]}) >>> ax = df.plot.bar(x="lab", y="val", rot=0)
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)
Plot stacked bar charts for the DataFrame
>>> ax = df.plot.bar(stacked=True)
Instead of nesting, the figure can be split by column with
subplots=True
. In this case, anumpy.ndarray
ofmatplotlib.axes.Axes
are returned.>>> axes = df.plot.bar(rot=0, subplots=True) >>> axes[1].legend(loc=2)
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)
Plot a single column.
>>> ax = df.plot.bar(y="speed", rot=0)
Plot only selected categories for the DataFrame.
>>> ax = df.plot.bar(x="lifespan", rot=0)