Gráfico de barras de Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Matplotlib es una popular biblioteca de Python utilizada para la visualización de datos. Proporciona una amplia gama de herramientas para crear gráficos, diagramas y otras visualizaciones. En este tutorial, aprenderá a crear un gráfico de barras con degradados utilizando Matplotlib.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

Primero, necesitamos importar las bibliotecas necesarias, que son NumPy y Matplotlib. NumPy es una biblioteca utilizada para los cálculos numéricos, mientras que Matplotlib es una biblioteca utilizada para la visualización de datos.

import matplotlib.pyplot as plt
import numpy as np

Establecer la semilla aleatoria

Estableceremos la semilla aleatoria para garantizar que obtenemos los mismos números aleatorios cada vez que ejecutamos el código. Esto se hace utilizando la función np.random.seed().

np.random.seed(19680801)

Definir la función de imagen de degradado

Necesitamos definir una función que creará una imagen de degradado basada en una mapa de colores. Esta función tomará un objeto de ejes, la dirección del degradado y el rango del mapa de colores que se utilizará. Luego, la función generará la imagen de degradado y la devolverá.

def gradient_image(ax, direction=0.3, cmap_range=(0, 1), **kwargs):
    """
    Dibuja una imagen de degradado basada en un mapa de colores.

    Parámetros
    ----------
    ax : Ejes
        Los ejes en los que se dibujará.
    direction : float
        La dirección del degradado. Este es un número en
        el rango 0 (=vertical) a 1 (=horizontal).
    cmap_range : float, float
        La fracción (cmin, cmax) del mapa de colores que debe ser
        utilizada para el degradado, donde el mapa de colores completo es (0, 1).
    **kwargs
        Otros parámetros se transmiten a `.Axes.imshow()`.
        En particular, *cmap*, *extent* y *transform* pueden ser útiles.
    """
    phi = direction * np.pi / 2
    v = np.array([np.cos(phi), np.sin(phi)])
    X = np.array([[v @ [1, 0], v @ [1, 1]],
                  [v @ [0, 0], v @ [0, 1]]])
    a, b = cmap_range
    X = a + (b - a) / X.max() * X
    im = ax.imshow(X, interpolation='bicubic', clim=(0, 1),
                   aspect='auto', **kwargs)
    return im

Definir la función de barra de degradado

A continuación, necesitamos definir una función que creará una barra de degradado. Esta función tomará el objeto de ejes, las coordenadas x e y de la barra, el ancho de la barra y la posición inferior de la barra. Luego, la función creará una imagen de degradado para cada barra y la devolverá.

def gradient_bar(ax, x, y, width=0.5, bottom=0):
    for left, top in zip(x, y):
        right = left + width
        gradient_image(ax, extent=(left, right, bottom, top),
                       cmap=plt.cm.Blues_r, cmap_range=(0, 0.8))

Crear la gráfica

Ahora, podemos crear la gráfica. Primero crearemos una figura y un objeto de ejes. Luego estableceremos los límites x e y de los ejes. Crearemos un fondo de degradado utilizando la función gradient_image(). Finalmente, crearemos un conjunto de datos aleatorios y usaremos la función gradient_bar() para crear el gráfico de barras.

fig, ax = plt.subplots()
ax.set(xlim=(0, 10), ylim=(0, 1))

## imagen de fondo
gradient_image(ax, direction=1, extent=(0, 1, 0, 1), transform=ax.transAxes,
               cmap=plt.cm.RdYlGn, cmap_range=(0.2, 0.8), alpha=0.5)

N = 10
x = np.arange(N) + 0.15
y = np.random.rand(N)
gradient_bar(ax, x, y, width=0.7)
plt.show()

Resumen

En este tutorial, aprendiste cómo crear un gráfico de barras con degradados utilizando Matplotlib. Aprendiste cómo definir la función de imagen de degradado y la función de barra de degradado, y cómo crear una gráfica utilizando estas funciones. También aprendiste cómo establecer la semilla aleatoria y cómo importar las bibliotecas necesarias.