Gr谩fico de barras de Matplotlib – Tutorial y ejemplos

    Introducci贸n

    Matplotlib es una de las bibliotecas de visualizaci贸n de datos m谩s utilizadas en Python. Desde visualizaciones simples hasta complejas, es la biblioteca de referencia para la mayor铆a.

    En este tutorial, veremos c贸mo trazar un diagrama de barras en Matplotlib.

    Los gr谩ficos de barras muestran cantidades num茅ricas en un eje y variables categ贸ricas en el otro, lo que le permite ver cu谩ntas ocurrencias hay para las diferentes categor铆as.

    Los gr谩ficos de barras se pueden utilizar para visualizar una serie de tiempo, as铆 como solo datos categ贸ricos.

    Trazar un diagrama de barras en Matplotlib

    Trazar un gr谩fico de barras en Matplotlib es tan f谩cil como llamar al bar() funci贸n en la instancia de PyPlot, y pasando las variables categ贸ricas y continuas que nos gustar铆a visualizar.

    import matplotlib.pyplot as plt
    
    x = ['A', 'B', 'C']
    y = [1, 5, 3]
    
    plt.bar(x, y)
    plt.show()
    

    Aqu铆, tenemos algunas variables categ贸ricas en una lista: A, B y C. Tambi茅n tenemos un par de variables continuas en otra lista: 1, 5 y 3. La relaci贸n entre estos dos se visualiza luego en un gr谩fico de barras pasando estas dos listas a plt.bar().

    Esto da como resultado un gr谩fico de barras limpio y simple:

    Trazar un gr谩fico de barras horizontales en Matplotlib

    A menudo, es posible que deseemos trazar un gr谩fico de barras horizontalmente, en lugar de verticalmente. Esto se puede lograr f谩cilmente cambiando el plt.bar() llamar con el plt.barh() llamada:

    import matplotlib.pyplot as plt
    
    x = ['A', 'B', 'C']
    y = [1, 5, 3]
    
    plt.barh(x, y)
    plt.show()
    

    Esto da como resultado un gr谩fico de barras orientado horizontalmente:

    Cambiar el color del gr谩fico de barras en Matplotlib

    Cambiar el color de las barras es tan f谩cil como configurar el color argumento con una lista de colores. Si tiene m谩s barras que colores en la lista, comenzar谩n a aplicarse desde el primer color nuevamente:

    import matplotlib.pyplot as plt
    
    x = ['A', 'B', 'C']
    y = [1, 5, 3]
    
    plt.bar(x, y, color=['red', 'blue', 'green'])
    plt.show()
    

    Ahora, tenemos un gr谩fico de barras de colores agradables:

    Por supuesto, tambi茅n puede utilizar las versiones abreviadas o incluso los c贸digos HTML:

    plt.bar(x, y, color=['red', 'blue', 'green'])
    plt.bar(x, y, color=['r', 'b', 'g'])
    plt.bar(x, y, color=['#ff0000', '#00ff00', '#0000ff'])
    plt.show()
    

    O incluso puede poner un solo valor escalar, para aplicarlo a todas las barras:

    plt.bar(x, y, color="green")
    

    Gr谩fico de barras con barras de error en Matplotlib

    Al trazar valores medios de listas, que es una aplicaci贸n com煤n para gr谩ficos de barras, tendr谩 un espacio de error. Es muy 煤til trazar barras de error para que otros observadores, y usted mismo, sepan cu谩n veraces son estos medios y qu茅 desviaci贸n se espera.

    Para ello, hagamos un conjunto de datos con algunos valores, calculemos sus medias y desviaciones est谩ndar con Numpy y grafiquemos con barras de error:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.array([4, 5, 6, 3, 6, 5, 7, 3, 4, 5])
    y = np.array([3, 4, 1, 3, 2, 3, 3, 1, 2, 3])
    z = np.array([6, 9, 8, 7, 9, 8, 9, 6, 8, 7])
    
    x_mean = np.mean(x)
    y_mean = np.mean(y)
    z_mean = np.mean(z)
    
    x_deviation = np.std(x)
    y_deviation = np.std(y)
    z_deviation = np.std(z)
    
    bars = [x_mean, y_mean, z_mean]
    bar_categories = ['X', 'Y', 'Z']
    error_bars = [x_deviation, y_deviation, z_deviation]
    
    plt.bar(bar_categories, bars, yerr=error_bars)
    plt.show()
    

    Aqu铆, hemos creado tres conjuntos de datos falsos con varios valores cada uno. Visualizaremos los valores medios de cada una de estas listas. Sin embargo, dado que las medias, as铆 como los promedios, pueden dar una falsa sensaci贸n de precisi贸n, tambi茅n calcularemos la desviaci贸n est谩ndar de estos conjuntos de datos para poder agregarlos como barras de error.

    Usando Numpy’s mean() y std() funciones, esto es muy sencillo. Luego, hemos empaquetado los valores de la barra en un bars lista, los nombres de las barras para una experiencia de usuario agradable en bar_categories y finalmente – los valores de la desviaci贸n est谩ndar en un error_bars lista.

    Para visualizar esto, llamamos al regular bar() funci贸n, pasando en el bar_categories (valores categ贸ricos) y bars (valores continuos), junto con yerr argumento.

    Como estamos trazando verticalmente, estamos usando el yerr argumento. Si estuvi茅ramos trazando horizontalmente, usar铆amos el xerr argumento. Aqu铆, proporcionamos la informaci贸n sobre las barras de error.

    Esto finalmente resulta en:

    Trazar Diagrama de barras apiladas en Matplotlib

    Finalmente, tracemos un gr谩fico de barras apiladas. Los diagramas de barras apiladas son realmente 煤tiles si tiene grupos de variables, pero en lugar de trazarlos uno al lado del otro, le gustar铆a trazarlos uno encima del otro.

    Para ello, volveremos a tener grupos de datos. Luego, calcularemos su desviaci贸n est谩ndar para las barras de error.

    Finalmente, necesitaremos un rango de 铆ndice para graficar estas variables una encima de la otra, manteniendo su orden relativo. Este 铆ndice ser谩 esencialmente un rango de n煤meros de la longitud de todos los grupos que tenemos.

    Para apilar una barra sobre otra, usa el bottom argumento. Usted especifica lo que hay en el bottom de esa barra. Para trazar x debajo y, t煤 establecer铆as x como el bottom de y.

    Para m谩s de un grupo, querr谩 sumar los valores antes de trazar, de lo contrario, el gr谩fico de barras no se sumar谩. Usaremos Numpy’s np.add().tolist() para agregar los elementos de dos listas y producir una lista de nuevo:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # Groups of data, first values are plotted on top of each other
    # Second values are plotted on top of each other, etc
    x = [1, 3, 2]
    y = [2, 3, 3]
    z = [7, 6, 8]
    
    # Standard deviation rates for error bars
    x_deviation = np.std(x)
    y_deviation = np.std(y)
    z_deviation = np.std(z)
    
    bars = [x, y, z]
    ind = np.arange(len(bars))
    bar_categories = ['X', 'Y', 'Z'];
    bar_width = 0.5
    bar_padding = np.add(x, y).tolist()
    
    
    plt.bar(ind, x, yerr=x_deviation, width=bar_width)
    plt.bar(ind, y, yerr=y_deviation, bottom=x, width=bar_width)
    plt.bar(ind, z, yerr=z_deviation, bottom=bar_padding, width=bar_width)
    
    plt.xticks(ind, bar_categories)
    plt.xlabel("Stacked Bar Plot")
    
    plt.show()
    

    Ejecutar este c贸digo da como resultado:

    Conclusi贸n

    En este tutorial, hemos repasado varias formas de trazar un diagrama de barras usando Matplotlib y Python. Tambi茅n cubrimos c贸mo calcular y agregar barras de error, as铆 como apilar barras una encima de la otra.

    Si est谩 interesado en la visualizaci贸n de datos y no sabe por d贸nde empezar, aseg煤rese de consultar nuestro libro sobre Visualizaci贸n de datos en Python.

    Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiar谩 a trav茅s de la manipulaci贸n simple de datos con Pandas, cubrir谩 bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrar谩 c贸mo aprovechar las bibliotecas declarativas y experimentales como Altair.

    Visualizaci贸n de datos en Python

    隆Comprenda mejor sus datos con visualizaciones! Con 340 p谩ginas, aprender谩 los entresijos de la visualizaci贸n de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y m谩s.

    .

    Etiquetas:

    Deja una respuesta

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