Matplotlib Bars

Matplotlib Logo



Creating Bars

📊 Los **gráficos de barras** son una forma común y efectiva de visualizar datos categóricos. Cada barra representa una categoría, y la altura (o longitud, en el caso de barras horizontales) de la barra es proporcional al valor que representa.

En Matplotlib, puedes crear gráficos de barras verticales utilizando la función `plt.bar(x, height)`, donde:

  • `x`: Es una secuencia de los nombres de las categorías o las posiciones de las barras en el eje x.
  • `height`: Es una secuencia de los valores correspondientes a la altura de cada barra.

Matplotlib automáticamente centrará las barras en las posiciones especificadas en `x`.

💻 Código de Ejemplo: Creando un gráfico de barras verticales


import matplotlib.pyplot as plt
import numpy as np

# Datos de ejemplo
x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])

plt.bar(x, y)
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Gráfico de Barras Verticales")
plt.show()
            

Este código genera un gráfico de barras verticales donde cada barra representa una de las categorías en el array `x`, y su altura corresponde al valor en el array `y`.

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico generado con JavaScript muestra la representación visual de un gráfico de barras verticales, donde la altura de cada barra representa un valor.

Horizontal Bars

➡️ Además de las barras verticales, Matplotlib te permite crear **gráficos de barras horizontales**. Estos son particularmente útiles cuando tienes etiquetas de categoría largas, ya que ofrecen más espacio para mostrarlas sin que se superpongan.

Para crear un gráfico de barras horizontales, utilizas la función `plt.barh(y, width)`, donde:

  • `y`: Es una secuencia de los nombres de las categorías o las posiciones de las barras en el eje y.
  • `width`: Es una secuencia de los valores correspondientes a la longitud (ancho) de cada barra.

Al igual que con las barras verticales, Matplotlib centrará automáticamente las barras en las posiciones especificadas en `y`.

💻 Código de Ejemplo: Creando un gráfico de barras horizontales


import matplotlib.pyplot as plt
import numpy as np

# Datos de ejemplo
y = np.array(["A", "B", "C", "D"])
x = np.array([3, 8, 1, 10])

plt.barh(y, x)
plt.ylabel("Categorías")
plt.xlabel("Valores")
plt.title("Gráfico de Barras Horizontales")
plt.show()
            

En este ejemplo, hemos creado un gráfico de barras horizontales donde cada barra representa una de las categorías en el array `y`, y su longitud corresponde al valor en el array `x`.

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico generado con JavaScript muestra la representación visual de un gráfico de barras horizontales, donde la longitud de cada barra representa un valor.

Bar Color

🎨 El **color** de las barras en un gráfico de barras es un aspecto importante para la estética y para distinguir diferentes conjuntos de datos o categorías.

Puedes especificar el color de las barras utilizando el argumento `color` en las funciones `plt.bar()` (para barras verticales) y `plt.barh()` (para barras horizontales). Este argumento acepta varios tipos de valores:

  • **Un nombre de color:** Como `'red'`, `'green'`, `'blue'`, `'gray'`, etc. Este color se aplicará a todas las barras.
  • **Una lista o array de nombres de colores:** Si proporcionas una lista de colores con la misma longitud que el número de barras, cada barra se coloreará con el color correspondiente de la lista.
  • **Códigos de color hexadecimal:** Como `'#FF0000'` para rojo, `'#008000'` para verde, etc.
  • **Tuplas RGB o RGBA:** Como `(1, 0, 0)` para rojo, `(0, 1, 0, 0.5)` para verde con 50% de transparencia.

💻 Código de Ejemplo: Especificando el color de las barras


import matplotlib.pyplot as plt
import numpy as np

x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])

# Todas las barras de un solo color
plt.figure(figsize=(6, 4))
plt.bar(x, y, color='skyblue')
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Barras con un solo color")
plt.show()

# Barras con diferentes colores
colors = ['red', 'green', 'blue', 'orange']
plt.figure(figsize=(6, 4))
plt.bar(x, y, color=colors)
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Barras con diferentes colores")
plt.show()

# Barras horizontales con color hexadecimal
y_horiz = np.array(["E", "F", "G"])
x_horiz = np.array([5, 3, 7])
plt.figure(figsize=(6, 4))
plt.barh(y_horiz, x_horiz, color='#a0c4ff')
plt.ylabel("Categorías")
plt.xlabel("Valores")
plt.title("Barras Horizontales con color hexadecimal")
plt.show()
            

Los ejemplos muestran cómo aplicar un solo color a todas las barras, cómo usar una lista de colores para colorear cada barra individualmente y cómo aplicar un color hexadecimal a barras horizontales.

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico generado con JavaScript ilustra cómo cambiar el color de las barras en un gráfico de barras verticales.

Color Hex

🎨 Los **códigos de color hexadecimal** son una forma potente y precisa de especificar colores en Matplotlib (y en muchas otras aplicaciones web y de diseño). Un código hexadecimal representa un color utilizando seis caracteres (además del prefijo '#'), donde cada par de caracteres representa la intensidad de los componentes Rojo (R), Verde (G) y Azul (B).

El formato general es `#RRGGBB`, donde `RR`, `GG` y `BB` son números hexadecimales que van de `00` (mínima intensidad) a `FF` (máxima intensidad). Por ejemplo:

  • `#FF0000` representa el color rojo (R=FF, G=00, B=00).
  • `#00FF00` representa el color verde (R=00, G=FF, B=00).
  • `#0000FF` representa el color azul (R=00, G=00, B=FF).
  • `#808080` representa el color gris (intensidades medias de R, G y B).
  • `#FFFFFF` representa el color blanco (máxima intensidad de R, G y B).
  • `#000000` representa el color negro (mínima intensidad de R, G y B).

Puedes utilizar códigos hexadecimales directamente en el argumento `color` de las funciones `plt.bar()` y `plt.barh()`.

💻 Código de Ejemplo: Utilizando códigos de color hexadecimal


import matplotlib.pyplot as plt
import numpy as np

x = np.array(["A", "B", "C"])
y = np.array([7, 4, 9])
bar_colors_hex = ['#a8dadc', '#457b9d', '#1d3557'] # Tonos de azul

plt.figure(figsize=(6, 4))
plt.bar(x, y, color=bar_colors_hex)
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Barras con colores hexadecimales")
plt.show()

y_horiz = np.array(["X", "Y", "Z"])
x_horiz = np.array([2, 6, 3])
bar_color_hex_single = '#f1faee' # Un tono claro
plt.figure(figsize=(6, 4))
plt.barh(y_horiz, x_horiz, color=bar_color_hex_single)
plt.ylabel("Categorías")
plt.xlabel("Valores")
plt.title("Barras horizontales con un solo color hexadecimal")
plt.show()
            

El primer ejemplo muestra cómo aplicar una lista de códigos hexadecimales a diferentes barras verticales. El segundo ejemplo muestra cómo aplicar un único código hexadecimal a todas las barras horizontales.

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico generado con JavaScript utiliza códigos hexadecimales para definir el color de las barras.

Bar Width

↔️ El **ancho** de las barras en un gráfico de barras verticales se puede ajustar para mejorar la presentación visual, especialmente cuando tienes muchas barras o etiquetas de categoría largas. Controlar el ancho te permite evitar la superposición de barras o crear espacios más definidos entre ellas.

Puedes especificar el ancho de las barras utilizando el argumento `width` en la función `plt.bar()`. El valor de `width` es un número que representa la fracción del espacio disponible para cada barra. El valor predeterminado suele ser 0.8.

Al igual que con el color, puedes proporcionar un único valor para aplicar el mismo ancho a todas las barras, o un array de valores para especificar un ancho diferente para cada barra.

💻 Código de Ejemplo: Ajustando el ancho de las barras


import matplotlib.pyplot as plt
import numpy as np

x = np.array(["A", "B", "C", "D"])
y = np.array([3, 8, 1, 10])

# Ancho uniforme para todas las barras
plt.figure(figsize=(6, 4))
plt.bar(x, y, width=0.3)
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Barras con ancho uniforme (0.3)")
plt.show()

# Ancho más grande
plt.figure(figsize=(6, 4))
plt.bar(x, y, width=0.9)
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Barras con ancho uniforme (0.9)")
plt.show()

# Ancho variable para cada barra
bar_widths = [0.2, 0.5, 0.8, 0.4]
plt.figure(figsize=(6, 4))
plt.bar(x, y, width=bar_widths)
plt.xlabel("Categorías")
plt.ylabel("Valores")
plt.title("Barras con ancho variable")
plt.show()
            

El primer gráfico muestra barras con un ancho más estrecho (0.3). El segundo gráfico muestra barras más anchas (0.9). El tercer gráfico aplica un ancho diferente a cada barra utilizando el array `bar_widths`.

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico generado con JavaScript ilustra cómo cambiar el ancho de las barras en un gráfico de barras verticales.

Bar Height

📶 El **alto** de las barras en un gráfico de barras horizontales es análogo al ancho en un gráfico de barras verticales. Ajustar la altura te permite controlar el grosor de las barras horizontales y el espacio entre ellas, lo cual es útil para mejorar la legibilidad, especialmente cuando tienes muchas barras o etiquetas de categoría largas.

Puedes especificar la altura de las barras utilizando el argumento `height` en la función `plt.barh()`. Al igual que con el ancho de las barras verticales, el valor de `height` es un número que representa la fracción del espacio disponible para cada barra horizontal. El valor predeterminado también suele ser 0.8.

Puedes proporcionar un único valor para aplicar la misma altura a todas las barras horizontales, o un array de valores para especificar una altura diferente para cada barra.

💻 Código de Ejemplo: Ajustando la altura de las barras horizontales


import matplotlib.pyplot as plt
import numpy as np

y = np.array(["A", "B", "C", "D"])
x = np.array([3, 8, 1, 10])

# Altura uniforme para todas las barras horizontales
plt.figure(figsize=(6, 4))
plt.barh(y, x, height=0.3)
plt.ylabel("Categorías")
plt.xlabel("Valores")
plt.title("Barras Horizontales con altura uniforme (0.3)")
plt.show()

# Altura más grande
plt.figure(figsize=(6, 4))
plt.barh(y, x, height=0.9)
plt.ylabel("Categorías")
plt.xlabel("Valores")
plt.title("Barras Horizontales con altura uniforme (0.9)")
plt.show()

# Altura variable para cada barra horizontal
bar_heights = [0.2, 0.5, 0.8, 0.4]
plt.figure(figsize=(6, 4))
plt.barh(y, x, height=bar_heights)
plt.ylabel("Categorías")
plt.xlabel("Valores")
plt.title("Barras Horizontales con altura variable")
plt.show()
            

El primer gráfico muestra barras horizontales con una altura más estrecha (0.3). El segundo gráfico muestra barras más altas (0.9). El tercer gráfico aplica una altura diferente a cada barra horizontal utilizando el array `bar_heights`.

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico generado con JavaScript ilustra cómo cambiar la altura de las barras en un gráfico de barras horizontales.




Publicar un comentario

0 Comentarios