Parcela de barra en Matplotlib

Un diagrama de barras o diagrama de barras es un gráfico que representa la categoría de datos con barras rectangulares con longitudes y alturas proporcionales a los valores que representan. Los gráficos de barras se pueden trazar horizontal o verticalmente. Un gráfico de barras describe las comparaciones entre las categorías discretas. Uno de los ejes del gráfico representa las categorías específicas que se comparan, mientras que el otro eje representa los valores medidos correspondientes a esas categorías.
 

Creación de un gráfico de barras

La API de matplotlib en Python proporciona la función bar() que se puede usar en el estilo de MATLAB o como una API orientada a objetos. La sintaxis de la función bar() que se utilizará con los ejes es la siguiente:

plt.bar(x, height, width, bottom, align)

La función crea un gráfico de barras delimitado por un rectángulo según los parámetros dados. A continuación, se muestra un ejemplo simple del diagrama de barras, que representa el número de estudiantes matriculados en diferentes cursos de un instituto. 
 

Python3

import numpy as np
import matplotlib.pyplot as plt
 
  
# creating the dataset
data = {'C':20, 'C++':15, 'Java':30,
        'Python':35}
courses = list(data.keys())
values = list(data.values())
  
fig = plt.figure(figsize = (10, 5))
 
# creating the bar plot
plt.bar(courses, values, color ='maroon',
        width = 0.4)
 
plt.xlabel("Courses offered")
plt.ylabel("No. of students enrolled")
plt.title("Students enrolled in different courses")
plt.show()

Producción- 
 

Aquí, plt.bar(courses, values, color=’maroon’) se usa para especificar que el gráfico de barras se trazará usando la columna de cursos como el eje X y los valores como el eje Y. El atributo color se usa para establecer el color de las barras (marrón en este caso). plt.xlabel («Cursos ofrecidos») y plt.ylabel («estudiantes inscritos») se usan para etiquetar los ejes correspondientes.plt.title ( ) se usa para hacer un título para el gráfico.plt.show() se usa para mostrar el gráfico como salida usando los comandos anteriores.
 

Personalización del gráfico de barras

Python3

import pandas as pd
from matplotlib import pyplot as plt
 
# Read CSV into pandas
data = pd.read_csv(r"cars.csv")
data.head()
df = pd.DataFrame(data)
 
name = df['car'].head(12)
price = df['price'].head(12)
 
# Figure Size
fig = plt.figure(figsize =(10, 7))
 
# Horizontal Bar Plot
plt.bar(name[0:10], price[0:10])
 
# Show Plot
plt.show()

Producción:
 

Se observa en el gráfico de barras anterior que las marcas del eje X se superponen entre sí, por lo que no se pueden ver correctamente. Por lo tanto, al girar las marcas del eje X, puede verse claramente. Es por eso que se requiere la personalización en los gráficos de barras.

Python3

import pandas as pd
from matplotlib import pyplot as plt
 
# Read CSV into pandas
data = pd.read_csv(r"cars.csv")
data.head()
df = pd.DataFrame(data)
 
name = df['car'].head(12)
price = df['price'].head(12)
 
# Figure Size
fig, ax = plt.subplots(figsize =(16, 9))
 
# Horizontal Bar Plot
ax.barh(name, price)
 
# Remove axes splines
for s in ['top', 'bottom', 'left', 'right']:
    ax.spines[s].set_visible(False)
 
# Remove x, y Ticks
ax.xaxis.set_ticks_position('none')
ax.yaxis.set_ticks_position('none')
 
# Add padding between axes and labels
ax.xaxis.set_tick_params(pad = 5)
ax.yaxis.set_tick_params(pad = 10)
 
# Add x, y gridlines
ax.grid(b = True, color ='grey',
        linestyle ='-.', linewidth = 0.5,
        alpha = 0.2)
 
# Show top values
ax.invert_yaxis()
 
# Add annotation to bars
for i in ax.patches:
    plt.text(i.get_width()+0.2, i.get_y()+0.5,
             str(round((i.get_width()), 2)),
             fontsize = 10, fontweight ='bold',
             color ='grey')
 
# Add Plot Title
ax.set_title('Sports car and their price in crore',
             loc ='left', )
 
# Add Text watermark
fig.text(0.9, 0.15, 'Jeeteshgavande30', fontsize = 12,
         color ='grey', ha ='right', va ='bottom',
         alpha = 0.7)
 
# Show Plot
plt.show()

Producción:
 

Hay muchas más personalizaciones disponibles para gráficos de barras.
 

Múltiples diagramas de barras

Los diagramas de barras múltiples se utilizan cuando la comparación entre el conjunto de datos debe realizarse cuando una variable está cambiando. Podemos convertirlo fácilmente como un gráfico de barras de áreas apiladas, donde cada subgrupo se muestra uno encima de los demás. Se puede trazar variando el grosor y la posición de las barras. El siguiente diagrama de barras muestra el número de estudiantes aprobados en la rama de ingeniería:

Python3

import numpy as np
import matplotlib.pyplot as plt
 
# set width of bar
barWidth = 0.25
fig = plt.subplots(figsize =(12, 8))
 
# set height of bar
IT = [12, 30, 1, 8, 22]
ECE = [28, 6, 16, 5, 10]
CSE = [29, 3, 24, 25, 17]
 
# Set position of bar on X axis
br1 = np.arange(len(IT))
br2 = [x + barWidth for x in br1]
br3 = [x + barWidth for x in br2]
 
# Make the plot
plt.bar(br1, IT, color ='r', width = barWidth,
        edgecolor ='grey', label ='IT')
plt.bar(br2, ECE, color ='g', width = barWidth,
        edgecolor ='grey', label ='ECE')
plt.bar(br3, CSE, color ='b', width = barWidth,
        edgecolor ='grey', label ='CSE')
 
# Adding Xticks
plt.xlabel('Branch', fontweight ='bold', fontsize = 15)
plt.ylabel('Students passed', fontweight ='bold', fontsize = 15)
plt.xticks([r + barWidth for r in range(len(IT))],
        ['2015', '2016', '2017', '2018', '2019'])
 
plt.legend()
plt.show()

Producción:
 

Gráfico de barras apiladas

Los diagramas de barras apiladas representan diferentes grupos uno encima del otro. La altura de la barra depende de la altura resultante de la combinación de los resultados de los grupos. Va desde abajo hasta el valor en lugar de ir desde cero hasta el valor. El siguiente diagrama de barras representa la contribución de los niños y niñas en el equipo.
 

Python3

import numpy as np
import matplotlib.pyplot as plt
 
N = 5
 
boys = (20, 35, 30, 35, 27)
girls = (25, 32, 34, 20, 25)
boyStd = (2, 3, 4, 1, 2)
girlStd = (3, 5, 2, 3, 3)
ind = np.arange(N)  
width = 0.35 
 
fig = plt.subplots(figsize =(10, 7))
p1 = plt.bar(ind, boys, width, yerr = boyStd)
p2 = plt.bar(ind, girls, width,
             bottom = boys, yerr = girlStd)
 
plt.ylabel('Contribution')
plt.title('Contribution by the teams')
plt.xticks(ind, ('T1', 'T2', 'T3', 'T4', 'T5'))
plt.yticks(np.arange(0, 81, 10))
plt.legend((p1[0], p2[0]), ('boys', 'girls'))
 
plt.show()

Producción- 
 

Publicación traducida automáticamente

Artículo escrito por jeeteshgavande30 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 *