No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Bar Plot

8/18
Recursos

El gráfico de barras porque nos permite graficar variables categóricas (variables de texto)

  • Importamos librerías
import matplotlib.pyplot as plt
import numpy as np
  • Variables categóricas
countrys = ["INDIA", "JAPAN", "MEXICO", "COLOMBIA", 'GERMANY']
population = [5000, 800, 900, 1000, 300]
  • Gráfica de barras
plt.bar(countrys,population)
plt.show()
bar.JPG
  • Modificar colores y tamaño
plt.bar(countrys,population,  width=0.5, color= ["aqua", "grey", "teal", "crimson", "violet"])
plt.show()
color.JPG
  • Modificar los nombres de las variables en el eje ‘X’ con xticks
plt.bar(countrys,population, width=0.5, color= ["aqua", "grey", "teal", "crimson", "violet"])
plt.xticks(np.arange(5), ('India','Japon', 'Mexico', 'Colombia', 'Alemania'), rotation = 45)
plt.show()
variables.JPG
  • Crear un gráfico de manera horizontal con barh
plt.barh(countrys,population)
plt.show()
barh.JPG

Reto:

  • Agrega: Título, nombre a los ejes, etiquetas que creas importantes.

Deja tu resultado en la sección de comentarios, te leeremos con mucho gusto 💚

Aportes 35

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Les dejo mi gráfica, agregué valores de la mediana y promedio.
Mi código:

plt.bar(country, population, width=0.5)
plt.axhline(y = pop_av, color = 'r', linestyle = '--', label='Population Average')
plt.axhline(y = pop_med, color = 'purple', linestyle = ':', label='Population Median')
plt.title('Population por country \n(Non realistic values)')
plt.ylabel('Populations (Millions)')
plt.xticks(np.arange(6), ('INDIA','JAPAN', 'MEXICO', 'COLOMBIA', 'USA', 'GERMANY'))
plt.legend(frameon=False)
plt.show()

Reto de dar contexto a la gráfica trabajada

Importar librerías

import matplotlib.pyplot as plt
import numpy as np

Definición de variables

countrys = ["India", "Japan", "Mexico", "Colombia", 'Germany']
population = [1000, 800, 900, 1000, 300]

Creación del gráfico

plt.style.use("seaborn")
plt.bar(countrys, population, width = 0.5, color = ["orange", "crimson", "plum", "aquamarine", "teal"])
plt.xticks(np.arange(5), ("India", "Japón", "México", "Colombia", "Alemania"), rotation = 0)
plt.title("Gráfica comparativa paises - población")
plt.xlabel("Paises")
plt.ylabel("Población")
plt.show()

Mi reto!

Reto:

  • Agregué un estilo a la grafica

  • Definí una paleta cyberpunk a las barras

  • Roté el ylabel para una mejor comprensión

#Import
import matplotlib.pyplot as plt
import numpy as np
#Data
country = ['INDIA','JAPAN','MEXICO','COLOMBIA','GERMANY']
population =[1000,800,900,1000,300]
#Set style
plt.style.use('seaborn-darkgrid')
#Set bar_plot
plt.bar(country,population,width=0.5,color=['#5c58b6','#b457ce','#5994ce','#3a4e93'])
plt.xticks(np.arange(5),('India','Japon','Mexico','Colombia','Alemania'),rotation=45)
#Set context
plt.title('World Population Country')
plt.xlabel('Country')
plt.ylabel('Population',rotation=0)
#Show plot
plt.show()

plt.bar(country,population,width=0.5,color=[‘red’,‘blue’])
plt.xticks(np.arange(5),(‘India’,‘Japon’,‘Mexico’,‘Colombia’,‘Alemania’),rotation=45)
plt.title(‘Paises vs Poblacion’)
plt.xlabel(‘Paises’)
plt.ylabel(‘Poblacion’)
plt.show()

Mi aporte:

plt.bar(country, population, width=0.5, color=['blue', 'red'])
plt.xticks(np.arange(5),('India', 'Perú', 'Japón', 'Aiur', 'Ulnar'), rotation=45)
plt.xlabel("Países")
plt.ylabel("Población en millones")
plt.axhline(y = np.median(population), color = 'r', linestyle = '--', label='Population Average')
plt.axhline(y = np.mean(population), color = 'orange', linestyle = ':', label='Population Median')
plt.legend()

Mi reto de la clase

Aquí mi aporte

plt.bar(country,POPULATION,width=0.5,color=['orange','red','green','yellow','black'])
plt.xticks(np.arange(5),('India','Japon','Mexico','Colombia','Alemania'),rotation=45)
plt.title("Población de los paises")
plt.xlabel("Paises")
plt.ylabel("Cantidad de población")
plt.show()

Reto

country = ['INDIA', 'JAPON', 'MEXICO', 'COLOMBIA', 'GERMANY']
population = [1000,800,600,750,150]
plt.style.use('seaborn')
plt.bar(country, population, width = 0.5, color = ['r','b','g','#CCFCCF','#ABCDEF'])
plt.title('Poblacion en algunos paises')
plt.xlabel('PAISES')
plt.ylabel('MILES DE POBLADORES')
plt.xticks(np.arange(5),('India', 'Japon', 'Mexico', 'Colombia', 'Alemania'), rotation = 45)
plt.show()

Reto completado:

plt.bar(country,population,width=0.5,color=['red','blue'])
plt.title('Poblacion por pais')
plt.ylabel('Poblacion', rotation=90)
plt.xlabel('Paises')
plt.xticks(np.arange(5),('India','Japon','Mexico','Colombia','Alemania'), rotation=45)
plt.show()

Este es mi reto:

plt.bar(country,population,width=0.5,color=['green','purple'])
plt.xticks(np.arange(5),('India','Japon','Mexico','Colombia','Alemania'),rotation=45)
plt.title("Pobalcion por país")
plt.xlabel("País")
plt.ylabel("Poblacion")
plt.show()

Dejo el desafío de la clase:

plt.bar(country, population, width = 0.5, color = ['red', 'blue']) # Puedo setear el ancho de las barras y tambien los colores, por ejemplo poniendo mas de un color
plt.xticks(np.arange(5),('INDIA','JAPON','MEXICO','COLOMBIA','ALEMANIA'), rotation = 45) # Seteo 5 etiquetas con su contenido modificado y las roto en angulo de 45 para que entren en la grafica
plt.title('Población comparada en millones de habitantes', loc= 'center')
plt.xlabel('Paises')
plt.ylabel('Población en millones')
plt.axhline(y=median_population, color='black', label='Mediana de población')
plt.axhline(y=media_population, color='grey', label='Media de población')
plt.legend(loc = 'best')
plt.tight_layout()
plt.show()

Aquí mi gráfica 😃

plt.style.use('seaborn-darkgrid')
plt.bar (Contry, Population, width=0.5, color=['#CD5C5C', '#F08080', '#FA8072', '#E9967A', '#FFA07A'])
plt.xticks(np.arange(5), ('India', 'Mexico', 'Colombia', 'Alemania', 'China'), rotation= 30)
plt.title('Poblacion, paises aleatorios')
plt.xlabel('Paises escogidos')
plt.ylabel('Poblacion en miles')
plt.show

Este es mi resultado 👾🚀

la idea de la media fue de Profe Eduardo en su Comentario
.

plt.bar(countrys,population, width=0.5, color= ["aqua", "grey", "teal", "crimson", "violet"])
plt.xticks(np.arange(5), ('India','Japon', 'Mexico', 'Colombia', 'Alemania'), rotation = 45)
plt.title("Population by country")
plt.xlabel("Countries")
plt.ylabel("Population")
plt.axhline(y = median , color= 'r', linestyle='--', label= 'Median Average')
plt.legend()
plt.show()
  • Media
median = sum(population)/ len(countrys)
median
→1600.0

Reto: Gráfico de Barras

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

# Listas 
country = ['INDIA','JAPAN','MEXICO','COLOMBIA','GERMANY'] 
population = [1000,800,900,1000,300]
# dataframe 
df = pd.DataFrame({'Country': country, 'Population': population})

plt.figure(figsize=[14, 7],facecolor='#1f1f7a') # figura tamaño y color

# col_map = plt.get_cmap('Paired')
#pl = plt.bar(df.Country, df.Population, width=0.5, color=col_map.colors ,edgecolor='#334d00', linewidth=3)

colors=['#1f1f7a', '#24248f', '#2929a3', '#2e2eb8', '#3333cc', '#4747d1'] # color de las barras 

pl = plt.bar(df.Country, df.Population, width=0.5, color=colors ,edgecolor='#141452', linewidth=3)

ax = plt.axes() # ejes 
ax.set_facecolor("#9999e6") # color entre ejes 

for axis in ['top','bottom','left','right']: # ancho y color de los ejes 
    ax.spines[axis].set_linewidth(4)
    ax.spines[axis].set_color('#d6d6f5')

ax.tick_params(axis='x', colors='#9999e6') # color numero de los ejes 
ax.tick_params(axis='y', colors='#9999e6')


for bar in pl:
    plt.annotate(bar.get_height(), xy=(bar.get_x()+0.1, bar.get_height()+10), fontsize=20) # seteo barras 

plt.title('POPULATION OF COUNTRIES ', fontsize=30,color='#9999e6') # titulos 
plt.xlabel('COUNTRIES', fontsize=15,color='#9999e6')
plt.ylabel('POPULATION', fontsize=15,color='#9999e6')
plt.show()
plt.bar(country, population, width=0.5, color=['#FCF69C', '#55D8C1', '#FF6FB5', '#AB46D2', '#4B7BE5'])
plt.xticks(np.arange(5), ('India', 'Japón', 'Colombia', 'Mexico', 'Alemania'), rotation=45)

plt.title('Relación país / población')
plt.xlabel('Población')
plt.ylabel('Pais')

plt.show()

Mi reto:

![](

RETO

hola a todos
mi aporte

Reto:

plt.style.use('seaborn-deep')
plt.bar(country, population, width=0.7, color='#3a4e7a')
plt.title('Paises con Mayor poblacion')
plt.xlabel('Paises')
plt.ylabel('Poblacion')
plt.xticks(np.arange(5), ('India', 'Japon', 'Mexico', 'Colombia', 'Alemania'), rotation = 45 )
plt.show()
plt.style.use('ggplot')
plt.barh(country, population, color = '#274a2a')
plt.title('Densidad Poblacional')
plt.xlabel('poblacion')
plt.ylabel('pais')

Challenge💯


Reto de la clase

plt.style.use('seaborn-pastel')
plt.bar(country,population,width=0.5,color=['purple'], label="# of awesomes 😎") # width of bars and colors
plt.xticks(np.arange(5),('India','Japon','Mexico','Colombia','Alemania'),rotation=45) # country labels customized text rotation of country names
plt.title("Population of Awesome People of Awesome Countries - 2022")
plt.xlabel("Country")
plt.ylabel("Population")
plt.legend() #N/A
plt.show() 

Al estar escribiendo el reto puse una letra de mas en el plt.title(), lo que arrojó este error

TypeError: 'str' object is not callable

este persistia incluso despues de corregirlo, si a alguien mas le pasa algo similar lo repare con este codigo:

import matplotlib.pyplot as plt
from importlib import reload
plt=reload(plt)
<
plt.bar(country,population, width=0.5, color=['red','olive','cyan','bisque','magenta'])
plt.title('¿Qué lugar hay más gente?')
plt.xlabel('Lugares')
plt.ylabel('Población')
plt.xticks(np.arange(5),('Bihar', 'Japón', 'México','Colombia', 'Alemania'), rotation=45)
plt.show()
> 

busqué la población real e India tiene mucho así que hice trampilla y use un estado de ellos :v

El desafío de la clase

Embellecer grafica reto!!!