stem
En matplotlib, la función stem
permite crear lo que se conoce como gráficos stem, gráficos de piruleta o lollipop charts en Python. Tendrás que pasar tus datos de entrada a la función con la posición y los valores asociados a cada una.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y)
# plt.show()
Gráfico de piruleta horizontal
Por defecto, los gráficos stem son verticales pero puedes crear gráficos horizontales estableciendo el argumento orientation
como "horizontal"
, tal y como se muestra en el ejemplo siguiente.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, orientation = "horizontal")
# plt.show()
El argumento bottom
Ten en cuenta que la línea base roja se sitúa por defecto en el cero, pero puedes sobrescribir su posición con el argumento bottom
.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, bottom = 60)
# plt.show()
La función stem
proporciona tres argumentos para personalizar el gráfico: linefmt
para las líneas, markerfmt
para los símbolos y basefmt
para la línea base.
Color de las líneas
Para cambiar el color de las líneas puedes pasar un nuevo color al argumento linefmt
, como se muestra a continuación.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, linefmt = 'black')
# plt.show()
Estilo de las líneas
Ten en cuenta que el mismo argumento usado para cambiar el color de las líneas también se puede utilizar para personalizar el estilo o tipo de línea.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, linefmt = '--')
# plt.show()
Color y tipo de líneas a la vez
Además, el argumento linefmt
también permite establecer el color y el tipo de línea a la vez, indicando el color (e.g. k
para negro) y el estilo de línea (--
para una línea discontinua).
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, linefmt = 'k--')
# plt.show()
Forma y color de los marcadores
El argumento markerfmt
permite personalizar el color y la forma de los marcadores del gráfico. En el ejemplo siguiente establecemos diamantes (D
) rojos (r
) como símbolo.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, markerfmt = 'Dr')
# plt.show()
Personalización de la línea base
El color y estilo de la línea base se puede personalizar de la misma manera que las otras líneas pero utilizando el argumento basefmt
. En el siguiente ejemplo establecemos una línea negra punteada.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, basefmt = 'k:')
# plt.show()
Por último, vale la pena mencionar que puedes crear gráficos lollipop en Python con varios grupos escribiendo nuevas líneas. Para agregar una leyenda establece la etiqueta con el argumento label
y después utiliza la función legend
.
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.arange(2, 12, 1)
y = x ** 2
x2 = np.arange(2, 12, 1)
y2 = -y
# Stem plot
fig, ax = plt.subplots()
ax.stem(x, y, 'b', markerfmt = 'bo', label = "Grupo 1")
ax.stem(x2, y2, 'g', markerfmt = 'go', label = "Grupo 2")
ax.legend()
# plt.show()
También te puede interesar