Introducci贸n

1

El Zen de Python

Conjuntos

2

Sets

3

Modificando conjuntos

4

Operaciones con conjuntos

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension

7

Dictionary Comprehension

8

Dictionary Comprehension: condition

9

Playgrounds: Crea una lista usando List Comprehension

10

Lists vs. Tuples vs. Sets

Funciones

11

Funciones

12

Funciones: return

13

Par谩metros por defecto y m煤ltiples returns

14

El scope

15

Refactor game

16

Playgrounds: Tienda de Tecnolog铆a

17

Funciones an贸nimas: lambda

18

Higher order function: una funci贸n dentro de otra funci贸n

19

Map

20

Map con diccionarios

21

Reto: map con inmutabilidad

22

Playgrounds: Multiplica todos los elementos por dos

23

Filter

24

Playgrounds: Retorna solo palabras de 4 letras y m谩s

25

Reduce

M贸dulos

26

M贸dulos

27

Mis propios m贸dulos

28

M贸dulos como scripts: __name__ y __main__

29

Paquetes

30

Playgrounds: Calcular la suma de todas las compras

Manipulaci贸n de archivos y errores

31

Iterables

32

Errores en Python

33

Manejo de excepciones

34

Playgrounds: Captura la excepci贸n: ZeroDivisionError

35

Leer un archivo de texto

36

Escribir en un archivo

37

Leer un CSV

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gr谩ficas en Python

39

Creando una gr谩fica

40

Reto: graficando la poblaci贸n de un pa铆s

41

Reto: graficando la poblaci贸n mundial

Pr贸ximos pasos

42

隆Conoce otros proyectos de este curso!

43

Reconoce tu proceso y certif铆cate

44

Toma el Curso de PIP y Entornos Virtuales con Python

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Creando una gr谩fica

39/44
Recursos

Aportes 83

Preguntas 16

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Yo estoy usando el Vscode y me toco escribir estos comandos para generar las gr谩ficas. Por a alguien le sirve, xd :p

 pip install matplotlib

Despu茅s me toco ejecutar el siguiente c贸digo porque me aparec铆a el error 鈥楿serWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.鈥

 sudo apt-get install python3-tk

Y ya, all good

Para la persona que ven铆an trabajando con Vscode, pueden usar Jupyter para la visualizaci贸n de la gr谩fica.

Ya entramos a la ciencia de datos 鉂わ笍

Yo instale matplotlib en win10 desde la terminal de Git Bash
con los comandos:

py -m pip install -U pip
py -m pip install -U matplotlib

eso fue suficiente.

Por si alguien se siente confundido sobre algo de la clase les dejo el c贸digo con explicaci贸n


import matplotlib.pyplot as plt
#plt es un alias para matplotlib.pyplot


# funcion para grafico de barra
def generate_bar_chart(labels, values):
  fig, ax = plt.subplots()
  #son dos valores que nos da la librer铆a, fig es como la figura y ax se refire a las coordenadas donde  vamos a empezar a graficar
  ax.bar(labels, values)
  #aqu铆 le est谩s indicando que quieres generar una gr谩fica de barras (bar), y le env铆as labels y values para que sepa que tiene que crear el gr谩fico con esos valores
  plt.show()
  #es para mque nos pide que muestre la gr谩fica



# funcion para pie chart
def generate_pie_chart(labels, values):
  fig, ax = plt.subplots()
  ax.pie(values, labels=labels)
  """
 Aqu铆 le estamos indicando que queremos que nos muestre una gr谩fica de torta, 
  fijate que en el anterior pusimos un bar y no un pie.

  Ahora le indicamos los labels pero tambi茅n tenemos que indicarle como van a ser los labels 
  """
  ax.axis('equal')
  plt.show()


# ejecutar archivo como script desde la terminal
if __name__ == '__main__':
  labels = ['a', 'b', 'c']
  values = [20, 50, 10]
  #son los valores y los labels que tendr谩 la gr谩fica
  generate_bar_chart(labels, values)
    #Llamando a la funci贸n

  generate_pie_chart(labels, values)
    #Llamamos a la funci贸n pie chart

que tal, en replit si funciona la gr谩fica pero en vscode no, aun cuando se instal贸 matplot, algui茅n sabr谩 por qu茅?

Para los que est谩n trabjando desde Linux-Ubuntu, para instalar la librer铆a Matplotlib es con la siguiente l铆nea:

sudo apt-get install python3-matplotlib

Ya que especifica la version de python de esta distribuci贸n de python que es python3. Lo pueden hacer desde la terminal del mismo sistema o en mi caso, desde la terminal del VScode

No entiendo porqu茅 este curso no se hace desde un principio en vsc, c贸mo se instalan paquetes en linux, no entiendo nada鈥

Creando una grafica

#--------- Graficas en Python -----------

import matplotlib.pyplot as plt

# funcion para grafico de barra
def generate_bar_chart(labels, values):
  fig, ax = plt.subplots()
  ax.bar(labels, values)
  plt.show()

# funcion para pie chart
def generate_pie_chart(labels, values):
  fig, ax = plt.subplots()
  ax.pie(values, labels=labels)
  ax.axis('equal')
  plt.show()

# ejecutar archivo como script desde la terminal
if __name__ == '__main__':
  labels = ['a', 'b', 'c']
  values = [20, 50, 10]
  
  generate_bar_chart(labels, values)
  generate_pie_chart(labels, values)

Respondo lo que preguntaron sobre usar matplotlib en VSCode. Lo ideal es correr el c贸digo en el modo interactivo. Es similar a un notebook de jupyter y con toda la potencia de VSCode.

Solo deben colocar # %% como separador de celda. Esto les va a pedir instalar algunas extensiones necesarias y despues ya todo es felicidad.

Les dejo un ejemplo donde lo vi claramente:

# %%
import matplotlib.pylab as plt
import numpy as np

# %% 
plt.figure()
plt.plot(np.sin(np.linspace(-np.pi, np.pi, 1001)))
plt.show()

Con esto lo que pasar谩 es que van a pder ejecutar cada celda donde se use el #%% como separador. Le dan run cell y listo.

Para los que no les sale la barra de tareas como al profe y no encuentran packages lo pueden encontrar de lado derecho 馃憖

Para que les corre en VS code usen:
pip install matplotlib

y en Commando Palette :
Select Interpeter: Python3.10

y Debuggen el Python File :

Deber铆a salirles as铆

Si les apareci贸 este error:

Traceback (most recent call last):
File 鈥/home/runner/NonstopBadWorker/app/charts.py鈥, line 1, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib鈥

Se arregl贸 volviendo a cargar la p谩gina, quiz谩 no se carg贸 bien y hace falta darle refresh a la ventana. Suerte.

maestro dejas muchas cosas al aire, de que sirve el metodo subplot(), el bar().

se hacerlo, pero no entiendo como funciona 馃ぉ

Para los que est茅n usando Vs Code en WSL-Linux & Ubuntu 20.04.5
Abren la terminal en Vs Code y ponen los siguientes comandos:
sudo apt-get update
sudo apt-get install python-matplotlib

El 鈥減ython鈥 de la segunda linea le deben agregar 鈥減ython3鈥 si tienen versiones mas actualizadas del lenguaje, quedando as铆:
sudo apt-get install python3-matplotlib

Hasta aca vine siendo un excelente curso

Es muy interesante ver como en esta herramienta se instalan bibliotecas y visualizan f谩cilmente las gr谩ficas, sin embargo, se recomienda ir revisando en Visual Studio Code, y con la consola de Linux ya que aqu铆 es algo m谩s complejo y puede ser un quebradero de cabeza despu茅s

Les comparto el c贸digo de la clase.

# Creando una gr谩fica

# https://platzi.com/blog/matplotlib/
# https://platzi.com/cursos/matplotlib-seaborn/
# https://matplotlib.org/
# https://www.w3schools.com/python/matplotlib_pyplot.asp

#pip install matplotlib
import matplotlib.pyplot as plt

def generate_bar_chart(labels, values):
  fig, ax = plt.subplots()
  ax.bar(labels, values)
  plt.show()

def generate_pie_chart(labels, values):
  fig, ax = plt.subplots()
  ax.pie(values, labels=labels)
  ax.axis("equal")
  plt.show()

if __name__ == "__main__":
  labels = ["a", "b", "c"]
  values = [70, 150, 120]
  #generate_bar_chart(labels, values)
  generate_pie_chart(labels, values)

yo estoy trabajando en vs code y esta versi贸n de la funci贸n fue la que al final me ejecuto

import matplotlib.pyplot as plot
def generate_bar_chart():
    labels=['a','b','c']
    values=[100,200,30.2]
    ax=plot.subplot()
    ax.bar(labels,values)
    plot.show()
<code> 
tengo dos dudas: Quisiera saber cu谩l es el motivo por el que en el minuto 7:48 baja los datos de labels y values a la l铆nea 9 "con el fin de reutiliarlos", ya que a simple vista, dejandolos donde estaba tambi茅n se pod铆an reutilizar cambiando o reemplazando estos valores como cuando los cambia a continuaci贸n. Quisiera saber en qu茅 casos ser铆a prudente hacer eso. La segunda pregunta es en relaci贸n a al c贸digo del profe y el m铆o en el min煤to 8:38. El c贸digo lo trato de adaptar para que sea m谩s digerible para m铆. Bajo los datos de pa铆ses y precios a la l铆nea 9 para imitarlo pero sin en las l铆neas 3 y 11 pongo entre par茅ntesis "(paiese,precios) me da error, sin embargo si lo dejo en blanco, s铆 corre y me imprime el gr谩fico. ![]() ![]()

Mis primeras gr谩ficas en Python, estoy emocionado!!!

Quisiera saber si para los gr谩ficos circulares o pieChart, la palabra "labels" es reservada? lo digo porque si reemplazo esta palabra por otras, cuando realic茅 el gr谩fico de barras usaba la palabra "paises" pero luego en el circular fall贸 hasta que modifiqu茅 "paises" por "labels". ![]()![]()

Trazado de datos

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([0, 6])
ypoints = np.array([0, 250])

plt.plot(xpoints, ypoints)
plt.show()

no me termina de convencer la forma de ense帽anza de Nicolas, va muy r谩pido, no explica bien la estructura de muchas funciones 馃槮

Chicos no es necesario hacer una funci贸n de todo, era mejor que nos ense帽e directo c贸mo hacer una gr谩fica y no estar haciendo funciones que YO considero innecesarias

Para los que no esten usando replit y esten en consola, aqui les dejo como instalarse matplotlib y de paso como crear un entorno virtual.

  1. Primero crea un entorno virtual de python en consola con:
py -m venv venv
  1. Para iniciar el entorno virtual tienes que correr este comando.
    (No he usado el comando de Linux y Mac, espero que te funcione xD)
#Windows
.\venv\scripts\activate

#Linux o Mac
Source venv/bin/activate
  1. Y con este instalas Matplotlib.
pip install matplotlib

Una vez termine la descarga ya lo puedes utilizar.
Otra cosa mas, si quieres salir del entorno virtual solo escribe:

Deactivate

Espero haberte ayudado!!

Que forma tan rapida para hacer gr谩ficas!

Para windows pueden instalar el paquete desde el powershell: `pip install matplotlib` Con esto es suficiente para poder gr谩ficar los datos.
Para todos quienes tengan problemas para trabajar en Visual Studio Code, deben escribir pip install matplotlib en la terminal y listo (siempre que tengan instalado Python, claro).
Buenas, alguien sabe como instalar el matplotlib en el visual code? Gracias!!
estoy "intentando" ver el video usando el servidor C (la unica opcion disponible), pero es imposible. Que desastre!!!
Para que me funcionara deb铆 usar jupyter notebook y usar el c贸digo de esta maneraimport matplotlib.pyplot as pltimport numpy as np def generate\_bar\_chart(labels, values):聽 聽 fig, ax = plt.subplots() 聽# Corregido para desempaquetar correctamente fig y ax聽 聽 ax.bar(labels, values)聽 聽 plt.show() \# Definiendo los labels y valores fuera de la funci贸nlabels = \['a', 'b', 'c']values = \[100, 20, 80] \# Llamando a la funci贸n directamente sin el bloque if \_\_name\_\_ == '\_\_main\_\_':generate\_bar\_chart(labels, values) ```js import matplotlib.pyplot as plt import numpy as np def generate_bar_chart(labels, values): fig, ax = plt.subplots() # Corregido para desempaquetar correctamente fig y ax ax.bar(labels, values) plt.show() # Definiendo los labels y valores fuera de la funci贸n labels = ['a', 'b', 'c'] values = [100, 20, 80] # Llamando a la funci贸n directamente sin el bloque if __name__ == '__main__': generate_bar_chart(labels, values) ```
Working on Jupyter Notebook. ![](https://static.platzi.com/media/user_upload/image-0d280afb-3b61-4bc4-ab2a-20919e37c146.jpg)
Como funciona cada linea dentrod e la funcion? : ```js def generate_bar_chart(labels, values): # Crear una figura y ejes fig, ax = plt.subplots() # Crear un gr谩fico de barras en los ejes ax.bar(labels, values) # Mostrar el gr谩fico plt.show() ```def generate\_bar\_chart(labels, values): \# Crear una figura y ejes fig, ax = plt.subplots() \# Crear un gr谩fico de barras en los ejes ax.bar(labels, values) \# Mostrar el gr谩fico plt.show()
Alguno intento correr las dos graficas en Replit? En mi caso creo que no soporto la generacion de ambas graficas. :unamused:
![](https://static.platzi.com/media/user_upload/imagen-0b639b41-83ef-4265-9b78-aa20ef6ab92e.jpg)

Con google colab se puede utilizar todas esas librerias sin necesidad de instalar.

Para los que usamos VSC en Mac. 1. Instalamos matplotlib desde la terminal con el comando `pip install matplotlib` o `pip3 install matplotlib` 1. Usamos un interprete menor a 3.12 (para seleccionarlo) 2. poner todo el c贸digo![]() entre # %% `# %%` `C贸digo` `# %%` ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-11-28%20a%20la%28s%29%202.55.28%E2%80%AFp.m.-940dd0ae-d0a6-4b26-a41b-d65a8f5d9691.jpg)
Saludos genios, cada vez est谩n m谩s interesantes las clases.

Estas dos 煤ltimas clases, no las asimilo, pues no entiendo en s铆 que se hace. Para saber que estoy haciendo, leer茅 la documentaci贸n de la librer铆a y aprender茅 ah铆

He estado usando visual y aun teniendo ya instalada la libreria no me funcionaba por un error en la linea fig, ax ; solo quiten el fig: ![](https://static.platzi.com/media/user_upload/image-5bf76680-8cd2-47ab-a6cd-7af3602786fb.jpg)![](https://static.platzi.com/media/user_upload/image-01e35333-d5c7-4d31-b2a7-eac29eb1cdcc.jpg)

Me gusto esta introduccion de manejo de graficas con python. Es algo bueno e interesante. Que bueno seguir aprendiendo.

![]()![](https://static.platzi.com/media/user_upload/gr%C3%A1fico_x_y-f23d7aab-a2ae-4e6e-a863-b9f7607af055.jpg)
Esta clase es muy 煤til para mi, despu茅s de batallar mucho, logr茅 hacer los gr谩ficos. Tambi茅n hice un gr谩fico de l铆nea, con el siguiente c贸digo: ```js import matplotlib.pyplot as plt valoresx = [1, 2, 3, 4, 5] valoresy = [1, 4, 9, 16, 25] fig, ax = plt.subplots() plt.plot(valoresx, valoresy) plt.show() ```
Si en replit les sale error de gr谩fica pueden usar Google Colab y pegan el codigo del script

<https://www.youtube.com/watch?v=MnFcMxqhWbQ&pp=ygUpaW5zdGFsYXIgbWF0cGxvdGxpYiBlbiB2aXN1YWwgc3R1ZGlvIGNvZGU%3D> por si tienen problemas de instalar matplotlib

Hola para los que est谩n practicado con un editor, lo pueden instalar con pip
pip install matplotlib

  1. Importaci贸n de matplotlib:

    pythonCopy code
    import matplotlib.pyplot as plt
    
    

    En esta l铆nea, importamos la biblioteca matplotlib y le asignamos el alias plt, que es una convenci贸n com煤n para abreviar el nombre de esta biblioteca.

  2. Definici贸n de la funci贸n generate_bar_chart:

    pythonCopy code
    def generate_bar_chart(labels, values):
        fig, ax = plt.subplots()
        ax.bar(labels, values)
        plt.show()
    
    

    Esta funci贸n toma dos argumentos: labels (etiquetas) y values (valores). Su prop贸sito es generar un gr谩fico de barras a partir de estos datos.

    • fig, ax = plt.subplots(): Esta l铆nea crea una figura (fig) y un eje (ax) para el gr谩fico. La figura es el lienzo en el que se dibujar谩 el gr谩fico, y el eje es la regi贸n en la que se representar谩n los datos.
    • ax.bar(labels, values): Esta l铆nea crea el gr谩fico de barras en el eje (ax). Utiliza las etiquetas (labels) en el eje x y los valores (values) en el eje y.
    • plt.show(): Finalmente, esta l铆nea muestra el gr谩fico en una ventana emergente.
  3. Definici贸n de la funci贸n generate_pie_chart:

    pythonCopy code
    def generate_pie_chart(labels, values):
        fig, ax = plt.subplots()
        ax.pie(values, labels=labels)
        ax.axis('equal')
        plt.show()
    
    

    Similar a la funci贸n anterior, esta funci贸n toma dos argumentos: labels y values, y su prop贸sito es generar un gr谩fico circular (pie chart).

    • fig, ax = plt.subplots(): Al igual que antes, se crea una figura y un eje.
    • ax.pie(values, labels=labels): Esta l铆nea genera el gr谩fico circular. Los valores (values) representan las proporciones de cada sector del gr谩fico, y las etiquetas (labels) se utilizan para etiquetar cada sector.
    • ax.axis('equal'): Asegura que el gr谩fico sea circular y no el铆ptico.
    • plt.show(): Muestra el gr谩fico circular.
  4. Bloque principal (if __name__ == '__main__':):
    En este bloque, se definen las etiquetas (labels) y los valores (values) que se utilizar谩n para crear los gr谩ficos. En este caso, se ha comentado la generaci贸n del gr谩fico de barras (generate_bar_chart(labels, values)) y se ha dejado habilitada la generaci贸n del gr谩fico circular (generate_pie_chart(labels, values)).

    • labels: Una lista de etiquetas que se usar谩n en los gr谩ficos.
    • values: Una lista de valores que se utilizar谩n en los gr谩ficos.

Cuando ejecutas este c贸digo, se generar谩 un gr谩fico circular (pie chart) utilizando las etiquetas y valores proporcionados en el bloque principal. Puedes habilitar la generaci贸n del gr谩fico de barras eliminando el comentario en la l铆nea correspondiente.

El jupyter le da mil vueltas a esto

Gr谩ficas en Python鈥

隆Por supuesto! Las gr谩ficas son una parte fundamental en muchas aplicaciones de Python, especialmente en el an谩lisis de datos y la visualizaci贸n de resultados. Python ofrece varias bibliotecas populares para crear gr谩ficas. Algunas de las bibliotecas de gr谩ficos m谩s utilizadas en Python son:

  1. Matplotlib: Matplotlib es una de las bibliotecas m谩s utilizadas para crear gr谩ficos est谩ticos en Python. Permite crear una amplia variedad de gr谩ficos, incluyendo gr谩ficos de dispersi贸n, barras, l铆neas, histogramas y m谩s. Es altamente personalizable y se puede utilizar junto con otras bibliotecas como NumPy y Pandas.

    Ejemplo de uso b谩sico de Matplotlib:

    import matplotlib.pyplot as plt
    
    # Datos
    x = [1, 2, 3, 4, 5]
    y = [10, 12, 5, 8, 9]
    
    # Crear un gr谩fico de barras
    plt.bar(x, y)
    
    # Mostrar el gr谩fico
    plt.show()
    
  2. Seaborn: Seaborn es una biblioteca de alto nivel que se basa en Matplotlib y simplifica la creaci贸n de gr谩ficos estad铆sticos atractivos. Est谩 dise帽ada especialmente para trabajar con DataFrames de Pandas.

    Ejemplo de uso de Seaborn:

    import seaborn as sns
    import pandas as pd
    
    # Datos en un DataFrame de Pandas
    df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [10, 12, 5, 8, 9]})
    
    # Crear un gr谩fico de barras usando Seaborn
    sns.barplot(x='x', y='y', data=df)
    
    # Mostrar el gr谩fico
    plt.show()
    
  3. Plotly: Plotly es una biblioteca que permite crear gr谩ficos interactivos y din谩micos. Puede generar gr谩ficos en l铆nea y fuera de l铆nea y es 煤til para la creaci贸n de paneles de control y visualizaciones interactivas.

    Ejemplo de uso de Plotly:

    import plotly.express as px
    
    # Datos en un DataFrame de Pandas
    df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [10, 12, 5, 8, 9]})
    
    # Crear un gr谩fico de barras interactivo con Plotly Express
    fig = px.bar(df, x='x', y='y', title='Gr谩fico de Barras Interactivo')
    fig.show()
    
  4. Bokeh: Bokeh es otra biblioteca para crear gr谩ficos interactivos y se utiliza principalmente para aplicaciones web. Permite la creaci贸n de gr谩ficos interactivos con herramientas de zoom, pan y selecci贸n.

    Ejemplo de uso de Bokeh:

    from bokeh.plotting import figure, show
    
    # Datos
    x = [1, 2, 3, 4, 5]
    y = [10, 12, 5, 8, 9]
    
    # Crear un gr谩fico de dispersi贸n interactivo
    p = figure(title='Gr谩fico de Dispersi贸n Interactivo')
    p.circle(x, y, size=10)
    
    # Mostrar el gr谩fico en un navegador web
    show(p)
    

Estas son solo algunas de las bibliotecas de gr谩ficos m谩s populares en Python. La elecci贸n de la biblioteca adecuada depender谩 de tus necesidades espec铆ficas y de la est茅tica que desees para tus gr谩ficos.

Para los que estan con VSCode

Suponiendo que han creado su propia carpeta para esta tarea, yo por ejemplo hice una llamada (grafico csv), abren su archivo .py con vs code y siguen los siguientes pasos dentro de la terminal:

  1. Primero abren un entorno virtual(esto sirve para el aislamiento de dependencias para proyectos Python, evita conflictos y asegura consistencia.):
python -m venv venv

(Si vsCode te pregunta si quieres instalarlo en la carpeta en la que te encuentras le das que si)

  1. Una vez instalado ejecutas lo siguiente:
.\venv\Scripts\activate   
  1. Por ultimo:
pip install matplotlib

Para los que est谩n usando replit como yo y que se les queda pensando al graficar, yo me cambi茅 de ocmputadora y funcion贸.

Yo puse estos c贸digos para que me corriera, ya que el codigo visto en clase no me corr铆a.

Por parar la clase antes de su typo me com铆 m谩s tiempo pensando que que ten铆a un problema con mi matplotlib hasta instal茅 de m谩s jajaj pero bueno funciona correctamente 馃悕

Escrib铆 la gr谩fica de la cardioide. Utilic茅 herramientas de matem谩ticas para parametrizar las listas de datos pero seguro que habr谩 comandos para automatizar este proceso en python. Solo us茅 lo que ten铆a mas inmediato y un poquito de investigaci贸n para utilizar algunos comandos.

import matplotlib.pyplot as plt
import math

angle = [math.radians(i) for i in range(0,360)]
x = [(1+math.cos(i))*math.cos(i) for i in angle]
#r = [1+math.cos(i) for i in x]
y = [(1+math.cos(i))*math.sin(i) for i in angle]
# print(x,y)

fig, ax = plt.subplots()  # Create a figure containing a single axes.
ax.plot(x, y)  # Plot some data on the axes
plt.show()

Si no les muestra las gr谩ficas en windows con Visual Studio, se tiene que setear el backend que usa matplotlib a 鈥淭kAgg鈥:

import matplotlib # Esto es importante
matplotlib.use('TkAgg')# Esto tambi茅n es importante
import matplotlib.pyplot as plt

def generate_bar_chart(labels, values):
    fig, ax = plt.subplots()
    ax.bar(labels, values)
    plt.show()
    
def generate_pie_chart(labels, values):
    fig, ax = plt.subplots()
    ax.pie(values, labels=labels)
    ax.axis('equal')
    plt.show()

if __name__ == '__main__':
    labels = ['a','b','c']
    values = [100, 200, 80]
    
    #generate_bar_chart(labels, values)
    generate_pie_chart(labels, values)

Estoy trabajando en Ubuntu Server y para instalar matplotlib verifiquen si tienen instalado pip

pip --version

si no lo tienen instalado abren consola y pegan esto

sudo apt-get update
sudo apt-get install python3-pip

verificamos

pip --version

y ahora si

pip install matplotlib
import matplotlib.pyplot as plt

def generate_bar_chart(labels, values):
  
  fig, ax = plt.subplots()
  ax.bar(labels, values)
  plt.show()

def generate_pie_chart(labels, values):
  fig, ax = plt.subplots()
  ax.pie(values, labels=labels)
  ax.axis('equal')
  plt.show()

if __name__ == '__main__':
  labels = ['a', 'b', 'c']
  values = [100, 200,30]
  #generate_bar_chart(labels, values)
  generate_pie_chart(labels,values)

Para instalar la librer铆a en VS Code Windows

copiar en la terminal:
python -m pip install -U pip

y luego
python -m pip install -U matplotlib

Listo!

Les recomiendo revisar el tutorial y los recursos de la clase, me han servido mucho para aprender a manipular las gr谩ficas

Al final no lo pude hacer en replit, no se porque y para avanzar lo pude hacer con vscode. super facil instalando la extension.

Hola Mundo

Sufr铆 un poco al principio, porque no estaba siguiendo el paso a paso en orden, y as铆 como me sucedi贸 a mi es posible que sin querer le pas茅 a m谩s compa帽eros, as铆 que les comento, lo primero que se debe hacer es ingresar a la p谩gina de Matplotlib y descargar el pip install matplotlib en la simbolog铆a del sistema, luego se dirigen a Replit y descargan en pakages la libreria matplotlib, hacen una prueba llamando el programa en el shell y si no funciona o sale algun error, copian el error y lo buscan en la paguina de matplotlib, hay aparecen varios soportes para manejar errores, todos los soportes deben ser descargados en la simbolog铆a del sistema, una vez hecho esto vuelves a Replit y 鈥榦jo鈥 es importante, debes desinstalar la biblioteca de matplotlib que ten铆as instalada ya que esta se va a quedar bloqueada con el error anterior, una vez desinstala vuelves a pakages y la instalas nuevamente, esta nueva instalaci贸n se ejecuta sin problema, y listo a divertirse 馃槒

Todo iba bien en el curso hasta esta clase

no se porque pero mi instinto me dice que esa librer铆a se contruy贸 con interfaz gr谩fica para poder hacerlo visual a la hora de hacer an谩lisis

import matplotlib.pyplot as plt 
#import numpy as np

with open('data.csv', 'r', encoding='cp1252') as f:
    header = list(next(f).strip().split(','))   # sobre el m茅todo readline del objeto file
    
    data = []
    for line in f.readlines():  # m茅todo readlines del objeto file
        data.append(dict(zip(header, line.strip().split(','))))

    values = [float(total['World Population Percentage']) for total in data if total['Continent'] == 'South America']

    labels = [total['Country/Territory'] for total in data if total['Continent'] == 'South America']
    
    fig, ax = plt.subplots()
    ax.bar(labels, values)
    plt.show()

tuve , como dos dias , que visual code en modo interactivo no me visualizava los charts . desde wsl , ubuntud ,
termine instalandole , gnome , y conociendo que es un GUI
ala final no me quedo muy claro como pero coguio , chatgpt3 lo tengo integrado en la terminal me ayudo mucho en algunas cosas y conocimientos , pero fue decisivo la documentaci贸n , por si estan en mi caso les recomiendo busquen estas dos lineas en la doc

matplotlab.use
matplotlab.get_backend

El c贸digo crea un script en Python que analiza y visualiza datos de un archivo CSV espec铆fico (datas.csv).

El script importa la biblioteca 鈥渃sv鈥 para leer el archivo CSV. Luego, define dos funciones: 鈥渁nalizeData鈥 y 鈥渃harts_Circle鈥.

La funci贸n 鈥渁nalizeData鈥 abre el archivo CSV y utiliza el m茅todo 鈥渃sv.reader鈥 para leer el contenido y almacenarlo en una lista llamada 鈥渓istas鈥. Luego, extrae las etiquetas (columna 0) y los valores (columna 1) del archivo CSV y los almacena en las listas 鈥渓abels鈥 y 鈥渧alues鈥. Finalmente, convierte los valores en enteros y devuelve las listas 鈥渓abels鈥 y 鈥渧alues鈥.

La funci贸n 鈥渃harts_Circle鈥 toma las listas 鈥渓abels鈥 y 鈥渧alues鈥 y las usa para crear un gr谩fico de barras mediante la biblioteca 鈥渕atplotlib鈥. La gr谩fica se muestra en pantalla con la funci贸n 鈥減it.show()鈥.

Finalmente, el bloque 鈥渋f name == 鈥榤ain鈥欌 asegura que el c贸digo solo se ejecute cuando el script sea ejecutado directamente (no cuando sea importado como un m贸dulo). Este bloque llama a la funci贸n 鈥渁nalizeData鈥 para obtener las listas 鈥渓abels鈥 y 鈥渧alues鈥, y luego llama a la funci贸n 鈥渃harts_Circle鈥 para crear y mostrar el gr谩fico de barras.

Utilizando las funciones creadas en la clase quise graficar, a modo de ejercicio, la poblaci贸n del 2022 agrupada por continentes, les comparto el proceso a modo de aporte:

Pd: Convert铆 el csv en un Dataframe de Pandas porque es la forma que me parece m谩s sencillo de manipularlo.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')

Cre茅 un subdataframe con los Continentes y la poblaci贸n del 2022 agrup谩ndolo por continente y sumando los totales:

sum_population = df[['Continent', '2022 Population']].groupby(by =['Continent']).sum()

Como los Continentes me quedaron como 铆ndice, hice un reset para que se convirtieran nuevamente en columna:

sum_population.reset_index(inplace = True)

Y listo, pude generar los gr谩ficos a partir de las funciones:

print(generate_bar_chart(sum_population['Continent'], sum_population['2022 Population']))
print(generate_pie_chart(sum_population['Continent'], sum_population['2022 Population']))

Si estan en WSL, para instalar pip, pueden usar esta serie de comandos:

sudo apt-get install python3-setuptools
sudo python3 -m easy_install install pip
python3 -m pip --version

Para los que tuvieron inconvenientes al ejecutar la gr谩fica desde VScode en mi caso lo solucion茅 de la siguiente forma:
Ve a extenciones y busca la extensi贸n 鈥淛upyter鈥 te permite ejecutar c贸digo por partes en tiempo real.
esto lo hace delimitando el c贸digo por bloques con 鈥#%%鈥.
Link de la extensi贸n: https://code.visualstudio.com/docs/datascience/jupyter-notebooks
https://docs.jupyter.org/en/latest/install.html

# %%  
import matplotlib.pyplot as plt
import numpy as np

def generate_bar_chart():
    labels = ['a', 'b', 'c']
    values = [100, 299, 129]
    fig, ax = plt.subplots()
    ax.bar(labels, values)
    plt.show()

if __name__ == '__main__':
    generate_bar_chart()

# %%

MI SOLUCI脫N> Tal vez no cumple con la filosof铆a de Python pero las funciones cumplen con el reto.

import read_csv
import matplotlib.pyplot as plt

def column_choice(data, column):
  #funcion que retorna la informacion de un pais elegido
  user_column = column.title()
  percentage_dict = {}
  #print(user_column)
  for country in data:
    for k, v in country.items():
      if k == user_column:
        percentage_dict[country['Country/Territory']] = v
  return percentage_dict


def generate_bar_char(data):
  labels = []
  values = []
  for k, v in data.items():
    labels.append(k)
    values.append(v)
  fig, ax = plt.subplots()
  ax.pie(values, labels = labels)
  ax.axis('equal')
  plt.show()

world_data = read_csv.read_csv('/home/runner/Python-Platzi/population/world_population.csv')

country_percentages = column_choice(world_data, 'world population percentage')

generate_bar_char(country_percentages)

import matplotlib.pyplot as plt


def generate_bar_chart():
  labels = ["a", "b", "c"]
  values = [100,200,80]
  fig, ax = plt.subplots()
  ax.bar(labels, values)
  plt.show()

if __name__ == "__main__":
  try:
    generate_bar_chart()
  except Exception as e:
    print(e)

Este c贸digo genera un gr谩fico de barras utilizando Matplotlib. Vamos a analizarlo paso a paso:

  • En la primera l铆nea, se importa el m贸dulo matplotlib.pyplot como plt. Esto nos permite utilizar funciones y m茅todos de este m贸dulo con el alias plt.

  • Se define una funci贸n llamada generate_bar_chart(). Esta funci贸n es la encargada de crear y mostrar el gr谩fico de barras.

  • Dentro de la funci贸n, se declaran dos listas llamadas labels y values. Estas listas contienen los valores de las etiquetas y los valores de las barras, respectivamente. En este caso, se tienen 3 etiquetas a, b, c y 3 valores 100, 200, 80.

  • Se crea una figura y un eje con fig, ax = plt.subplots(). La funci贸n plt.subplots() devuelve una figura y un eje en dos variables. El eje es el lugar donde se dibujar谩n los gr谩ficos, y la figura es el contenedor de los ejes.

  • Se utiliza el m茅todo bar del eje (ax) para crear el gr谩fico de barras. El primer argumento es la lista de etiquetas y el segundo argumento es la lista de valores. Esto crea las barras del gr谩fico con las etiquetas y valores especificados.

  • Se utiliza el m茅todo show() de plt para mostrar el gr谩fico.

  • Finalmente, se tiene una secci贸n de c贸digo if name == 鈥main鈥 la cual solo se ejecutar谩 si este script es el script principal en ejecuci贸n. En este caso, se intenta llamar a la funci贸n generate_bar_chart() y en caso de ocurrir un error se imprime dicho error.

Les recomiendo usar PyCharm para proyectos profesionales 馃槈

Comparto mi soluci贸n al reto:

import csv
import matplotlib.pyplot as plt

def read_csv(path):
  with open(path, 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    header = next(reader)
    data = []
    for row in reader:
      iterable = list(zip(header, row))
      country_dict = {key: value for (key, value) in iterable}
      data.append(country_dict)
  return data
  
data = read_csv('./app/data.csv')

def population(data):
  values = []
  country = input('Digite el pa铆s: ')
  
  for i in data:
    if country == i.get('Country/Territory'):
      values.append(i.get('1970 Population'))
      values.append(i.get('1980 Population'))
      values.append(i.get('1990 Population'))
      values.append(i.get('2000 Population'))
      values.append(i.get('2010 Population'))
      values.append(i.get('2015 Population'))
      values.append(i.get('2020 Population'))
      values.append(i.get('2022 Population'))
  
    # iterable = list(zip(years, values))
    # population_dict = {key: value for (key, value) in iterable}
    # population_for_year.append(population_dict)
    
  return values

years = ['1970', '1980', '1990', '2010','2000', '2015', '2020', '2022']
population = population(data)

def bar_chart(population, years):

  fig, ax = plt.subplots()
  ax.bar(years, population)
  plt.show()
  

if __name__ == '__main__':
  population_for_year = bar_chart(population, years)
import matplotlib.pyplot as plt

def generate_bar_chart(labels, values): 
  fig, ax = plt.subplots()
  ax.bar(labels, values)
  plt.show()

def generate_pie_chart(labels, values):
  fig, ax = plt.subplots()
  ax.pie(values, labels = labels)
  ax.axis('equal')
  plt.show()

if __name__ == '__main__':
  labels = [ 'a','b', 'c']
  values = [10, 40, 800]
  #generate_bar_chart(labels, values)
  generate_pie_chart(labels, values)

  • Subplot permite crear gr谩ficos dentro de una gr谩fica. Esto lo hace a trav茅s de una matriz de gr谩ficos y se puede acceder a ellos a trav茅s de 铆ndices:
    C贸mo acceder a la matriz de gr谩ficos en Subplot
    import matplotlib.pyplot as plt
    import numpy as np
x = np.linspace(0,5,11)
y = x ** 2
Par谩metros en Subplot

  • Los par谩metros de subplot funcionan:
    Filas Columnas Index

  • Crear fila y dos columnas
    鈥 Crear una matriz de gr谩ficos de una fila y dos columnas

  • Si est谩s usando un compilador y tienes problemas con la ejecuci贸n de MATPLOTLIB, puede que necesites instalarlo en tu ordenador (hay varias formas de hacerlo correctamente como hacerlo desde la consola de tu ordenador).

  • Si tienes problemas con la instalaci贸n con PIP, puede que necesites habilitarlo en la versi贸n de tu python.

  • Tambi茅n puedes tener problemas instalando una versi贸n anterior de la librer铆a, esto hace que alg煤n comando no se reconozca.

para los que est谩n usando otros IDE abren una terminal preferiblemente usar un entorno virtual y lo instalan
https://matplotlib.org/stable/users/installing/index.html

Mejor en Google Colab鈥