Como sabemos, el mundo entero se está viendo afectado por la pandemia de COVID-19 y casi todos trabajan desde casa. Todos deberíamos utilizar esta duración en el mejor de los casos, para mejorar nuestras habilidades técnicas o escribir buenos scripts Pythonic.
Veamos un simple script de Python para demostrar los casos de coronavirus por estado en India. Este script de Python obtiene los datos en vivo del sitio web oficial del Ministerio de Asuntos de Salud. Luego, los datos se representan en el gráfico de barras horizontales.
Para ejecutar este script, siga la instalación a continuación:
$ pip install bs4 $ pip install tabulate $ pip install matplotlib $ pip install numpy $ pip install requests
Intentemos ejecutar el script paso a paso.
Paso 1:
Python3
# importing libraries import requests from bs4 import BeautifulSoup from tabulate import tabulate import os import numpy as np import matplotlib.pyplot as plt
Paso 2:
Python3
extract_contents = lambda row: [x.text.replace('\n', '') for x in row] URL = 'https://www.mohfw.gov.in/' SHORT_HEADERS = ['SNo', 'State','Indian-Confirmed(Including Foreign Confirmed)','Cured','Death'] response = requests.get(URL).content soup = BeautifulSoup(response, 'html.parser') header = extract_contents(soup.tr.find_all('th')) stats = [] all_rows = soup.find_all('tr') for row in all_rows: stat = extract_contents(row.find_all('td')) if stat: if len(stat) == 4: # last row stat = ['', *stat] stats.append(stat) elif len(stat) == 5: stats.append(stat) stats[-1][0] = len(stats) stats[-1][1] = "Total Cases"
Paso 3:
Python3
objects = [] for row in stats : objects.append(row[1]) y_pos = np.arange(len(objects)) performance = [] for row in stats[:len(stats)-1] : performance.append(int(row[2])) performance.append(int(stats[-1][2][:len(stats[-1][2])-1])) table = tabulate(stats, headers=SHORT_HEADERS) print(table)
Producción:
Paso 4:
Python3
plt.barh(y_pos, performance, align='center', alpha=0.5, color=(234/256.0, 128/256.0, 252/256.0), edgecolor=(106/256.0, 27/256.0, 154/256.0)) plt.yticks(y_pos, objects) plt.xlim(1,performance[-1]+1000) plt.xlabel('Number of Cases') plt.title('Corona Virus Cases') plt.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por _decryptor_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA