현재 코로나 나라별 사망률을 그래프로 만들려고 하는 코드입니다. 이 코드에서 for문 안에서는 name(나라이름)도 해당 페이지에 있는 나라 이름들이 전부 나오고 r_rate(나라별 사망률)도 해당 페이지에 있는 나라별 사망률도 정확히 다 나오는데 for문 밖에서 name과 r_rate를 사용해서 그래프로 출력할려고 하니까 전부안나오고 마지막 나라와 마지막 나라의 사망률만 나오네요. 혹시 어떻게 하면 모든 나라와 모든 나라의 사망률이 표시되게 할수있는지 아시는분 계신가요?
import urllib.request
import requests
from urllib.parse import quote_plus
from bs4 import BeautifulSoup
from urllib import parse
import matplotlib.pyplot as plt
url='https://coronavirus.jhu.edu/data/mortality'
fp = urllib.request.urlopen(url)
source = fp.read()
fp.close()
soup = BeautifulSoup(source, "html.parser")
base_info= soup.find("div", {"class": "TFormat_main__35Moj"})
second_info=base_info.find_all('td')
for i in range(0,846,5):
name=second_info[i].text.strip()
for i in range(3,849,5):
rate=second_info[i].text.strip()
r_rate=float(rate.replace("%",""))
plt.rc('font', family='Malgun Gothic')
country=[name]
drate=[r_rate]
plt.rc('font', family='Malgun Gothic')
plt.figure(figsize=(10,6))
Colors=['red','green','blue','black']
plt.bar(country,drate,color=Colors)
plt.title('Covid19 Fatality Rate 2020.12')
plt.ylabel('Fatality Rate (%)')
plt.grid()
plt.show()