pandas 1.4.2

ParametersReturns
barh(self, x=None, y=None, **kwargs)

A horizontal bar plot is a plot that presents quantitative 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.

  • Adictoftheform{columnname

    A dict of the form {column name

versionadded
**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 when subplots=True .

Make a horizontal bar plot.

See Also

DataFrame.plot

Make plots of DataFrame using matplotlib.

DataFrame.plot.bar

Vertical bar plot.

matplotlib.axes.Axes.bar

Plot a vertical bar plot using matplotlib.

Examples

Basic example

.. plot:: 
    ('context', 'close-figs')
    
>>> df = pd.DataFrame({'lab': ['A', 'B', 'C'], 'val': [10, 30, 20]})
>>> ax = df.plot.barh(x='lab', y='val')

Plot a whole DataFrame to a horizontal bar plot

.. plot:: 
    ('context', 'close-figs')
    
>>> 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.barh()

Plot stacked barh charts for the DataFrame

.. plot:: 
    ('context', 'close-figs')
    
>>> ax = df.plot.barh(stacked=True)

We can specify colors for each column

.. plot:: 
    ('context', 'close-figs')
    
>>> ax = df.plot.barh(color={"speed": "red", "lifespan": "green"})

Plot a column of the DataFrame to a horizontal bar plot

.. plot:: 
    ('context', 'close-figs')
    
>>> 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.barh(y='speed')

Plot DataFrame versus the desired column

.. plot:: 
    ('context', 'close-figs')
    
>>> 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.barh(x='lifespan')
See :

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


File: /pandas/plotting/_core.py#1133
type: <class 'function'>
Commit: