圖像繪制

今天是2020年3月29日,星期日,此時我大中華區(qū)此時已經將新冠病毒基本控制,希望其他國家也加油戰(zhàn)勝病毒,現(xiàn)借各個國家疫情數(shù)據介紹一下matplotlib繪制曲線圖、直方圖、餅狀圖等

import pandas as pd?

import matplotlib.pyplot as plt?

import matplotlib.colors as mcolors

import numpy as np

#因為需要用到https的數(shù)據下載 所以引入了ssl

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

一、獲取數(shù)據

confirmed_ds = pd.read_csv('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv')

deaths_df = pd.read_csv('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv')

其中confirmed_ds、deaths_df 分別表示確診數(shù)據以及死亡數(shù)據

confirmed_ds.head()

確診數(shù)據

二、數(shù)據處理

1.準備數(shù)據

cols = confirmed_ds.keys()

confirmed = confirmed_ds.loc[:, cols[4]:cols[-1]]

deaths = deaths_df.loc[:, cols[4]:cols[-1]]

dates = confirmed.keys()

# 美國目前病歷

us_cases = []

# 意大利目前病歷

italy_cases = []

# 中國目前病歷

china_cases = []

# 全球目前確診病例

world_cases = []

# 全球目前死亡數(shù)量

total_deaths = []

mortality_rate = []

for index, date in enumerate(dates):

? ? us_cases.append(confirmed_ds[confirmed_ds['Country/Region']=='US'][date].sum())

? ? italy_cases.append(confirmed_ds[confirmed_ds['Country/Region']=='Italy'][date].sum())

? ? china_cases.append(confirmed_ds[confirmed_ds['Country/Region']=='China'][date].sum())


? ? death_sum = deaths[date].sum()

? ? confirmed_sum = confirmed[date].sum()

? ? total_deaths.append(death_sum)

? ? world_cases.append(confirmed_sum)

? ? mortality_rate.append(death_sum/confirmed_sum)

#將日期01/22/2020,01/23/2020 ,01/24/2020 ... 等映射成 1,2,3...

dates_index = np.array([index+1 for index, date in enumerate(dates)]).reshape(-1,1)


三、繪制圖像

1.繪制曲線圖

a.單挑曲線

plt.figure(figsize=(16, 9))

plt.plot(dates_index, world_cases, color='red')

plt.title('Currently confirmed cases in the world', size=30)

plt.xlabel('Days Since 01/22/2020', size=30)

plt.ylabel('World Cases', size=30)

plt.xticks(size=20)

plt.yticks(size=20)

plt.show()

圖像


目前全球確診病例


b.多條曲線

plt.figure(figsize=(15, 10))

plt.plot(dates_index, china_cases)

plt.plot(dates_index, italy_cases)

plt.plot(dates_index, us_cases)

plt.title('# of Coronavirus Cases', size=30)

plt.xlabel('Days Since 1/22/2020', size=30)

plt.ylabel('# of Cases', size=30)

plt.legend(['China', 'Italy', 'US'], prop={'size': 20})

plt.xticks(size=20)

plt.yticks(size=20)

plt.show()

圖像


多個曲線

c.帶有水平虛線

mean_world_case = np.mean(world_cases)

plt.figure(figsize=(16, 9))

plt.plot(dates_index, world_cases,linestyle='dashed', color='red')

plt.axhline(y = mean_world_case,linestyle='--', color='black')

plt.title('Currently confirmed cases in the world', size=30)

plt.xlabel('Days Since 01/22/2020', size=30)

plt.ylabel('World Cases', size=30)

plt.xticks(size=20)

plt.yticks(size=20)

plt.show()

圖像


虛線圖

d.條形圖

plt.figure(figsize=(16, 4))

plt.barh('China', china_cases, height=0.4)

plt.barh('Italy', italy_cases,height=0.4)

plt.barh('USA', us_cases,height=0.4)

plt.title('# of Coronavirus Confirmed Cases', size=20)

plt.xticks(size=20)

plt.yticks(size=20)

plt.show()

圖像


圖形圖

e.餅狀圖

c = random.choices(list(mcolors.CSS4_COLORS.values()),k = 3)

plt.figure(figsize=(20,15))

plt.title('Covid-19 Confirmed Cases', size=20)

plt.pie(country_cases, colors=c)

plt.legend(country_names, loc='best', fontsize=15)

plt.show()

圖像


餅狀圖
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容