Pandas DataFrame DataFrame.plot.bar() Función

Minahil Noor 30 enero 2023
  1. Sintaxis de pandas.DataFrame.plot.bar()
  2. Códigos de ejemplo: DataFrame.plot.bar()
  3. Códigos de ejemplo: DataFrame.plot.bar() Con múltiples columnas de datos
  4. Códigos de ejemplo: DataFrame.plot.bar() Con subplots=True para crear subplots
  5. Códigos de ejemplo: DataFrame.plot.bar() para trazar una sola columna de datos
  6. Códigos de ejemplo: DataFrame.plot.bar() Con los colores especificados
Pandas DataFrame DataFrame.plot.bar() Función

La función Pandas Python DataFrame.plot.bar() traza un gráfico de barras a lo largo del eje especificado. Grafica el gráfico en categorías. Las categorías se dan en el eje x y los valores se dan en el eje y.

Sintaxis de pandas.DataFrame.plot.bar()

DataFrame.sample(x=None, y=None, **kwds)

Parámetros

x Este es el eje en el que se trazarán las categorías. Si no se especifica, entonces se utiliza el índice del DataFrame.
y Representa los valores que se grafican contra las categorías. Si no se especifica, entonces traza todas las columnas numéricas del DataFrame contra las categorías.
**kwds Estos son los argumentos de palabras clave adicionales para personalizar el gráfico trazado. Puedes comprobarlo aquí.

Retorna

Devuelve un array N-dimensional. Si subplots = True, entonces devuelve un array de N-dimensiones con matplotlib.axes.Axes por columna.

Códigos de ejemplo: DataFrame.plot.bar()

Primero entendamos esta función usando un simple DataFrame.

import pandas as pd
dataframe = pd.DataFrame({'Value':[100, 200, 300]})
print(dataframe)

Nuestro DataFrame parece

 Value
0  100
1  200
2  300

Todos los parámetros de esta función son opcionales. Si ejecutamos esta función sin pasar ningún parámetro, entonces toma el índice como eje x y las columnas de datos numéricos como eje y.

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame({"Value": [100, 200, 300]})
axis = dataframe.plot.bar(rot=0)
print(axis)
plt.show()

Resultado:

AxesSubplot(0.125,0.125;0.775x0.755)

Pandas DataFrame.plot.bar Basic

El parámetro rot es un parámetro de palabra clave adicional. Cambia la rotación de los nombres de las categorías en el eje x.

El gráfico se verá como abajo si no ponemos rot.

Pandas DataFrame.plot.bar Basic - no establecer rot

Códigos de ejemplo: DataFrame.plot.bar() Con múltiples columnas de datos

Ahora, cambiaremos nuestro DataFrame por uno complejo.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
print(dataframe)

Nuestro DataFrame parece

        Age  Avg Age in Family
Olivia   23                 70
John     17                 65
Laura    40                 80
Ben      38                 55
Kevin    24                 60
Robin    12                 63
Elsa     45                 90

Traza este DataFrame usando la función DataFrame.plot.bar().

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(rot=0)
print(axis)
plt.show()

Resultado:

AxesSubplot(0.125,0.125;0.775x0.755)

Pandas DataFrame.plot.bar con múltiples columnas

Genera un gráfico de barras que contiene dos barras de datos numéricos de cada categoría. Ayuda a analizar los datos de manera eficiente.

Códigos de ejemplo: DataFrame.plot.bar() Con subplots=True para crear subplots

Si subplots=True, entonces la función devuelve un array N-dimensional con matplotlib.axes.Axes por columna. Usando esto, podemos separar nuestras columnas de datos en diferentes subtramas en lugar de una sola.

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axes = dataframe.plot.bar(rot=0, subplots=True)
print(axes)
plt.show()

Resultado:

[<matplotlib.axes._subplots.AxesSubplot object at 0x0000029A89B06DC8>
 <matplotlib.axes._subplots.AxesSubplot object at 0x0000029A89B4B2C8>]

Pandas DataFrame.plot.bar subplots

Códigos de ejemplo: DataFrame.plot.bar() para trazar una sola columna de datos

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(y="Age", rot=0)
print(axis)
plt.show()

Resultado:

AxesSubplot(0.125,0.125;0.775x0.755)

Pandas DataFrame.plot.bar Trazar una sola columna

También podemos graficar cualquier columna de datos contra otras columnas en lugar de trazar índices como categorías.

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(x="Age", rot=0)
print(axis)
plt.show()

Resultado:

AxesSubplot(0.125,0.125;0.775x0.755)

Pandas DataFrame.plot.bar - Usar una columna como eje X

Códigos de ejemplo: DataFrame.plot.bar() Con los colores especificados

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(rot=0, color="m")
plt.show()

Pandas DataFrame.plot.bar - Un solo color para diferentes columnas

Especifica el color m para todas las columnas del DataFrame.

import pandas as pd
import matplotlib.pyplot as plt

dataframe = pd.DataFrame(
    {
        "Age": [23, 17, 40, 38, 24, 12, 45],
        "Avg Age in Family": [70, 65, 80, 55, 60, 63, 90],
    },
    index=["Olivia", "John", "Laura", "Ben", "Kevin", "Robin", "Elsa"],
)
axis = dataframe.plot.bar(rot=0, color=["r", "b"])
print(axis)
plt.show()

Pandas DataFrame.plot.bar - Diferentes colores para diferentes columnas

También podríamos especificar diferentes colores para diferentes columnas en el DataFrame dando una lista de colores al parámetro color.

Artículo relacionado - Pandas DataFrame

Artículo relacionado - Pandas DataFrame Plot