馃幆 Matplotlib: Tutorial de Markers para Gr谩ficos

Matplotlib Logo



Markers

馃搶 En Matplotlib, los **marcadores** son s铆mbolos que se pueden a帽adir a los puntos de datos en un gr谩fico. Son 煤tiles para resaltar puntos individuales, especialmente cuando se trazan m煤ltiples l铆neas o una gran cantidad de datos, facilitando la distinci贸n entre los diferentes puntos. 馃搳

Puedes especificar qu茅 marcador usar al llamar a la funci贸n `plot()`. El argumento para definir el marcador es una cadena de texto corta.

Aqu铆 tienes un ejemplo b谩sico en Python que muestra c贸mo a帽adir marcadores a una l铆nea:


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10])

plt.plot(ypoints, marker='o')
plt.show()
            

En este ejemplo, el argumento `marker='o'` indica que se debe usar un c铆rculo como marcador en cada punto de datos.

馃捇 C贸digo de Ejemplo: Trazado con marcadores circulares


import matplotlib.pyplot as plt
import numpy as np

temperatures = np.array([22, 25, 21, 28, 23, 26])

plt.plot(temperatures, marker='o')
plt.xlabel("D铆a")
plt.ylabel("Temperatura (°C)")
plt.title("Temperaturas Semanales con Marcadores")
plt.show()
            

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico, generado con JavaScript, muestra una l铆nea con marcadores circulares ('o') en cada punto de datos, resaltando las temperaturas en diferentes d铆as.

Marker Reference

⭐ Matplotlib ofrece una variedad de marcadores para personalizar la apariencia de los puntos en tus gr谩ficos. Aqu铆 tienes una referencia de algunos de los marcadores m谩s comunes que puedes usar con el argumento `marker` en la funci贸n `plot()`:

  • `'o'`: C铆rculo
  • `'*'`: Asterisco
  • `'.'`: Punto
  • `','`: P铆xel
  • `'x'`: Cruz (X)
  • `'+'`: M谩s
  • `'s'`: Cuadrado
  • `'d'`: Diamante
  • `'p'`: Pent谩gono
  • `'^'`: Tri谩ngulo hacia arriba
  • `'v'`: Tri谩ngulo hacia abajo
  • `'<'`: Tri谩ngulo hacia la izquierda
  • `'>'`: Tri谩ngulo hacia la derecha
  • `'h'`: Hex谩gono
  • `'H'`: Hex谩gono

Puedes experimentar con estos diferentes marcadores para encontrar el que mejor se adapte a tus necesidades de visualizaci贸n.

馃捇 C贸digo de Ejemplo: Usando diferentes marcadores


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10, 5, 12])
markers = ['o', '*', '.', 'x', '+', 's']

plt.figure(figsize=(10, 6)) # Ajustamos el tama帽o de la figura para mejor visualizaci贸n
for i, marker in enumerate(markers):
    plt.plot(i, ypoints[i], marker=marker, markersize=10, label=f'Marker: {marker}')

plt.xlabel("脥ndice")
plt.ylabel("Valor")
plt.title("Ejemplos de diferentes marcadores en Matplotlib")
plt.legend()
plt.xticks(np.arange(len(markers)), markers) # Etiquetas del eje x con los nombres de los marcadores
plt.grid(True)
plt.show()
            

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript muestra ejemplos de diferentes tipos de marcadores aplicados a puntos individuales. Puedes observar la variedad de s铆mbolos disponibles para resaltar tus datos.

Format Strings fmt

✨ En Matplotlib, puedes controlar tanto el **estilo de la l铆nea** como el **marcador** de una manera m谩s concisa utilizando **format strings** en la funci贸n `plot()`. Un format string es una cadena de texto que puede contener hasta tres partes (en cualquier orden):

  1. **Marker:** Define el tipo de marcador (ej: `'o'`, `'*'`).
  2. **Line:** Define el estilo de la l铆nea (ej: `'-'` para l铆nea s贸lida, `'--'` para l铆nea punteada).
  3. **Color:** Define el color de los marcadores y la l铆nea (ej: `'r'` para rojo, `'g'` para verde).

No es necesario incluir las tres partes; puedes especificar solo el marcador, solo la l铆nea, solo el color, o cualquier combinaci贸n de ellos.

馃捇 C贸digo de Ejemplo: Usando format strings


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10])

# L铆nea roja con marcadores de c铆rculo
plt.plot(ypoints, 'o-r')
plt.show()

# L铆nea punteada azul con marcadores de asterisco
plt.plot(ypoints, '*--b')
plt.show()

# Solo marcadores de diamante verdes
plt.plot(ypoints, 'dg')
plt.show()
            

En el primer ejemplo (`'o-r'`), `'o'` especifica el c铆rculo como marcador, `'-'` indica una l铆nea s贸lida y `'r'` establece el color rojo.

En el segundo ejemplo (`'*--b'`), `'*'` es el asterisco como marcador, `'--'` es una l铆nea punteada y `'b'` es el color azul.

En el tercer ejemplo (`'dg'`), `'d'` es el marcador de diamante y `'g'` es el color verde. Como no se especific贸 un estilo de l铆nea, no se dibuja ninguna l铆nea entre los marcadores.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript ilustra diferentes combinaciones de marcadores, estilos de l铆nea y colores, tal como se definen usando format strings en Matplotlib.

Line Reference

〰️ Adem谩s de los marcadores, puedes personalizar el **estilo de la l铆nea** que conecta los puntos en tu gr谩fico de Matplotlib. Esto se puede hacer utilizando el format string (como vimos anteriormente) o mediante el argumento `linestyle` en la funci贸n `plot()`. Aqu铆 tienes una referencia de los estilos de l铆nea m谩s comunes:

  • `'-'` o `'solid'`: L铆nea s贸lida (por defecto)
  • `'--'` o `'dashed'`: L铆nea punteada
  • `'-.'` o `'dashdot'`: L铆nea con guiones y puntos
  • `':'` o `'dotted'`: L铆nea de puntos

Puedes elegir el estilo de l铆nea que mejor represente tus datos o que mejore la claridad visual de tu gr谩fico.

馃捇 C贸digo de Ejemplo: Usando diferentes estilos de l铆nea


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10])
linestyles = ['-', '--', '-.', ':']

plt.figure(figsize=(8, 6))
for i, linestyle in enumerate(linestyles):
    plt.plot(ypoints + i * 2, linestyle=linestyle, label=f'Estilo: {linestyle}')

plt.xlabel("脥ndice")
plt.ylabel("Valor")
plt.title("Ejemplos de diferentes estilos de l铆nea en Matplotlib")
plt.legend()
plt.grid(True)
plt.show()
            

En este ejemplo, trazamos la misma serie de puntos varias veces, cada vez con un estilo de l铆nea diferente especificado por el argumento `linestyle`. Hemos desplazado ligeramente los datos en el eje y para que las l铆neas no se superpongan y sean m谩s f谩ciles de distinguir.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript muestra ejemplos de los diferentes estilos de l铆nea que se pueden utilizar para conectar los puntos en un gr谩fico de Matplotlib.

Color Reference

馃帹 Matplotlib ofrece una amplia gama de opciones para personalizar el **color** de tus l铆neas y marcadores. Puedes especificar los colores de varias maneras:

  • **Letras de un solo car谩cter:** Para algunos colores b谩sicos, puedes usar una letra:
    • `'r'`: Rojo
    • `'g'`: Verde
    • `'b'`: Azul
    • `'c'`: Cian
    • `'m'`: Magenta
    • `'y'`: Amarillo
    • `'k'`: Negro
    • `'w'`: Blanco
  • **Nombres de colores:** Puedes usar nombres de colores HTML/CSS est谩ndar (ej: `'lime'`, `'salmon'`, `'teal'`). Matplotlib reconoce una gran cantidad de nombres de colores.
  • **C贸digos HEX:** Tambi茅n puedes especificar colores utilizando c贸digos hexadecimales (ej: `'#FF5733'` para un tono de rojo anaranjado).
  • **Tuplas RGB o RGBA:** Puedes definir colores utilizando una tupla de valores rojo, verde y azul (y opcionalmente alfa para transparencia), donde cada valor est谩 entre 0 y 1 (ej: `(0.1, 0.5, 0.2)` para un verde oscuro, `(0.1, 0.5, 0.2, 0.5)` para el mismo verde con 50% de transparencia).

Experimenta con diferentes opciones de color para hacer tus gr谩ficos m谩s informativos y visualmente atractivos.

馃捇 C贸digo de Ejemplo: Usando diferentes colores


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10])
colors = ['r', 'lime', '#FF5733', (0.1, 0.5, 0.2)]
color_names = ['Rojo (letra)', 'Lima (nombre)', 'Naranja (#HEX)', 'Verde Oscuro (RGB)']

plt.figure(figsize=(10, 6))
for i, color in enumerate(colors):
    plt.plot(ypoints + i * 2, color=color, marker='o', markersize=8, label=color_names[i])

plt.xlabel("脥ndice")
plt.ylabel("Valor")
plt.title("Ejemplos de diferentes colores en Matplotlib")
plt.legend()
plt.grid(True)
plt.show()
            

En este ejemplo, trazamos la misma serie de puntos cuatro veces, cada vez con un color diferente especificado de una manera distinta: una letra, un nombre, un c贸digo HEX y una tupla RGB.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript muestra ejemplos de l铆neas con diferentes colores, ilustrando las diversas formas en que se pueden especificar los colores en Matplotlib.

Marker Size

馃搻 El **tama帽o de los marcadores** en Matplotlib se puede ajustar para mejorar la visualizaci贸n y destacar puntos espec铆ficos. Puedes controlar el tama帽o de los marcadores utilizando el argumento `markersize` (o su forma abreviada `ms`) en la funci贸n `plot()`.

El valor que asignes a `markersize` representa aproximadamente el 谩rea del marcador en puntos al cuadrado. Experimentar con diferentes tama帽os puede ser 煤til para hacer los marcadores m谩s o menos prominentes en tu gr谩fico.

馃捇 C贸digo de Ejemplo: Ajustando el tama帽o de los marcadores


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10, 5, 12])
sizes = [3, 6, 9, 12, 15, 18]

plt.figure(figsize=(10, 6))
for i, size in enumerate(sizes):
    plt.plot(i, ypoints[i], marker='o', markersize=size, label=f'Tama帽o: {size}')

plt.xlabel("脥ndice")
plt.ylabel("Valor")
plt.title("Ejemplos de diferentes tama帽os de marcadores en Matplotlib")
plt.legend()
plt.xticks(np.arange(len(sizes)), [f'{s} pt' for s in sizes])
plt.grid(True)
plt.show()
            

En este ejemplo, trazamos la misma forma de marcador (c铆rculo) en diferentes tama帽os, utilizando la lista `sizes` para variar el valor del argumento `markersize` en cada iteraci贸n.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript muestra c贸mo variar el tama帽o de los marcadores (c铆rculos en este caso) en un gr谩fico. Observa c贸mo el valor del tama帽o afecta la prominencia de los puntos.

Marker Color

馃枍️ En Matplotlib, puedes personalizar el **color de los marcadores** de forma independiente del color de la l铆nea. Esto te permite crear gr谩ficos m谩s expresivos y destacar los puntos de datos de manera espec铆fica. Puedes controlar el color de los marcadores utilizando los argumentos:

  • `markeredgecolor` (o `mec`): Establece el color del borde del marcador.
  • `markerfacecolor` (o `mfc`): Establece el color del relleno del marcador.

Puedes usar cualquiera de las opciones de color que vimos en la secci贸n anterior (letras, nombres, HEX, RGB/RGBA) para estos argumentos.

馃捇 C贸digo de Ejemplo: Personalizando el color de los marcadores


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10, 5, 12])

plt.figure(figsize=(10, 6))

# Marcadores circulares con borde rojo y relleno amarillo
plt.plot(ypoints, marker='o', mec='r', mfc='y', markersize=10, label='Borde Rojo, Relleno Amarillo')

# Marcadores de diamante con borde azul y sin relleno (transparente)
plt.plot(ypoints + 2, marker='d', mec='b', mfc='none', markersize=12, linestyle='--', label='Borde Azul, Sin Relleno')

# Marcadores de estrella con borde verde y relleno magenta
plt.plot(ypoints + 4, marker='*', mec='g', mfc='m', markersize=15, linestyle=':', label='Borde Verde, Relleno Magenta')

plt.xlabel("脥ndice")
plt.ylabel("Valor")
plt.title("Ejemplos de colores de marcadores en Matplotlib")
plt.legend()
plt.grid(True)
plt.show()
            

En este ejemplo, hemos trazado tres l铆neas con diferentes tipos de marcadores y hemos personalizado tanto el color del borde (`mec`) como el color del relleno (`mfc`) para cada uno.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript ilustra c贸mo se pueden personalizar los colores del borde y el relleno de los marcadores en un gr谩fico de Matplotlib.




Publicar un comentario

0 Comentarios