Pandas DataFrame Bar Plot.
Table Of Contents:
- Syntax ‘plot.bar( )’ Method In Pandas.
- Examples ‘plot.bar( )’ Method.
(1) Syntax:
DataFrame.plot.area(x=None, y=None, **kwargs)
Description:
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:
- x: label or position, optional – Allows plotting of one column versus another. If not specified, the index of the DataFrame is used.
- y: label or position, optional –
Allows plotting of one column versus another. If not specified, all numerical columns are used.
color: str, 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 namecolor}, 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
.
(2) Examples Of plot.bar() Method:
Example-1:
df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})
df
Output:
ax = df.plot.bar(x='lab', y='val', rot=0)
Output:
# 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)
df
Output:
# Bar Plot
ax = df.plot.bar(rot=0)
Output:
# Plot stacked bar charts for the DataFrame
ax = df.plot.bar(stacked=True)
Output:
# Instead of nesting, the figure can be split by column with subplots=True. In this case, a numpy.ndarray of matplotlib.axes.Axes are returned.
axes = df.plot.bar(rot=0, subplots=True)
axes[1].legend(loc=2)
Output:
# 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)
Output:
# Plot a single column.
ax = df.plot.bar(y='speed', rot=0)
Output:
# Plot only selected categories for the DataFrame.
ax = df.plot.bar(x='lifespan', rot=0)