Cree gráficos de piruletas con Pandas y Matplotlib

En este artículo, crearemos gráficos Lollipop . No son más que una variación del gráfico de barras en el que la barra gruesa se reemplaza con solo una línea y una «o» en forma de punto al final. Se prefieren los gráficos Lollipop cuando hay muchos datos para representar que pueden formar un grupo cuando se representan en forma de barras.

ENLACE AL ARCHIVO CSV: haga clic aquí

Analicemos algunos ejemplos con diferentes métodos para visualizar el gráfico de piruletas usando pandas.

Ejemplo 1:

Usando la función plt.stem , crea líneas verticales en cada posición x cubierta bajo el gráfico desde la línea de base hasta y y coloca un marcador allí. Pero es inflexible, por lo que es posible que también desee probar otros métodos.

En este ejemplo, trazaremos el gráfico de piruletas recopilando los datos de un archivo CSV usando pandas.

Al principio, crearemos un gráfico vacío a través de plt.subplots() y usando el diagrama de tallo que acepta argumentos en forma de (x, y), ambos pueden ser valores similares a una array, trazaremos los valores en el gráfico. use_line_collection =True mejora el rendimiento del gráfico de tallo y traza las líneas de tallo como una LineCollection en lugar de líneas individuales. El basefmt=’ ‘ elimina la línea de base de las líneas madre. 

El archivo CSV tiene una columna como «month_number» y «total_profit» que se ha leído del archivo CSV y se ha pasado al diagrama de tallo como (x,y) y también se han agregado algunos detalles y formato.

set_ylim () se establece en cero para que los valores del eje y comiencen desde cero.

Acercarse:

  • Importar módulos (matplotlib y pandas)
  • Abra el archivo CSV y lea los datos
  • Trazarlo usando plt.stem

Python3

# importing modules
from pandas import *
import matplotlib.pyplot as plt
  
# reading CSV file
d = read_csv("company_sales_data.csv")
  
# creating an empty chart
fig, axes = plt.subplots()
  
# plotting using plt.stem
axes.stem(d['month_number'], d['total_profit'],
          use_line_collection=True, basefmt=' ')
  
# starting value of y-axis
axes.set_ylim(0)
  
# details and formatting of chart
plt.title('Total Profit')
plt.xlabel('Month')
plt.ylabel('Profit')
plt.xticks(d['month_number'])

Producción:

Ejemplo 2:

En este ejemplo, crearemos un gráfico/cuadro vacío usando plt.subplots() y luego, después de leer los datos de las columnas del archivo CSV, dibujaremos líneas verticales usando la función vlines() que toma argumentos como (x,ymin ,ymax) donde ymin es el valor mínimo e ymax es el valor máximo que se va a trazar.

Después de dibujar las líneas verticales, usaremos la función plot() para dibujar los marcadores que tendrán forma de círculos y finalmente se formará el gráfico de piruletas.

Python3

# import modules
from pandas import *
from matplotlib import pyplot as plt
  
# read csv file
d = read_csv("company_sales_data.csv")
  
# using subplots() to draw vertical lines
fig, axes = plt.subplots()
axes.vlines(d['month_number'], ymin=0, ymax=d['total_profit'])
  
# drawing the markers (circle)
axes.plot(d['month_number'], d['total_profit'], "o")
axes.set_ylim(0)
  
# formatting and details
plt.xlabel('Month')
plt.ylabel('Profit')
plt.title('Total Profit')
plt.xticks(d['month_number'])

Producción:

Ejemplo 3: 

Este ejemplo es igual que el segundo método, la única diferencia está en el trazado de las líneas, aquí trazaremos las líneas horizontalmente. Entonces, crearemos un gráfico/cuadro vacío usando plt.subplots() y luego, después de leer los datos de las columnas del archivo CSV, dibujaremos líneas verticales usando la función hlines() que toma el argumento como (y,xmin,xmax ) donde xmin es el valor mínimo y xmax es el valor máximo que se va a graficar.

Después de dibujar las líneas verticales nuevamente, usaremos la función plot() para dibujar los marcadores que tendrán la forma de círculos y finalmente se formará el gráfico de piruleta. Aquí agregaremos diferentes colores a cada mes para que se vea más atractivo, la función hlines() como la opción colors para establecer colores en diferentes líneas.

Python3

# import modules
from pandas import *
from matplotlib import pyplot as plt
  
# read csv file
d = read_csv("company_sales_data.csv")
  
# using subplots() to draw vertical lines
fig, axes = plt.subplots()
  
# providing list of colors
line_colors = ['blue', 'cyan', 'green', 'red',
               'skyblue', 'brown', 'yellow',
               'black', 'grey', 'orange', 'maroon',
               'lightgreen']
  
axes.hlines(d['month_number'], xmin=0,
            xmax=d['total_profit'], colors=line_colors)
  
# drawing the markers (circle)
axes.plot(d['total_profit'], d['month_number'], "o")
axes.set_xlim(0)
  
# formatting and details
plt.xlabel('Profit')
plt.ylabel('Month')
plt.title('Total Profit')
plt.yticks(d['month_number'])

Producción:

Publicación traducida automáticamente

Artículo escrito por adityaprasad1308 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *