2019年末柄慰,2020伊始,一場突如其來的新冠狀肺炎(NCP)疫情改變了中國沃暗,在本該辭舊迎新之時因一例不起眼的肺炎到現(xiàn)如今四萬四千多人確認感染,短短數(shù)月屯碴,恍如大夢一場描睦。疫情的情況發(fā)展揪著我們每個人的心。
這是一場關乎我們所有人地戰(zhàn)爭导而,我們熱切地討論,謹慎地分析隔崎,為災難中隕落地生命而痛惜今艺,為醫(yī)者地大無畏精神而感動,為一切人為地錯誤而義憤填膺爵卒,為我們能為之所做地點滴小事而不懈努力虚缎。在這片土地上,在哪些從素未謀面地面孔里钓株,哪些義無反顧地背影里实牡,希望滋生出勇氣,因為冬天終將過去轴合!
接下來通過plotly進行繪制的疫情趨勢圖创坞,通過疫情的趨勢圖能更直觀的了解疫情的變化。
plotly這個軟件在國內(nèi)的使用率似乎并不高受葛,所以很多中文的相關資料都十分的匱乏题涨,所以資料方面也不是很多這里放出plotly的官方python使用說明
[Plotly Python Graphing Library?plot.ly
(https://link.zhihu.com/?target=https%3A//plot.ly/python/)
相關文件已上傳至GitHub
https://github.com/syvince/plotly-?github.com
首先使用pandas模塊,讀取csv數(shù)據(jù)总滩。(數(shù)據(jù)統(tǒng)計截至至2020/2/12 數(shù)據(jù)來源:丁香醫(yī)生)
使用plotly模塊并將文件存儲為html格式纲堵,繪制折線圖使用go.Scatter函數(shù),指定x軸與y軸闰渔,通過domain使整體布局呈現(xiàn)垂直結構席函。
import plotly as py
import plotly.graph_objects as go
import pandas as pd
pyplt=py.offline.plot
url="dat/NCP.csv"
df=pd.read_csv(url)
date=pd.date_range(start='22/1/2020',end='11/2/2020')
figure= go.Figure()
# 對繪圖添加 traces
trace1 = go.Scatter(x=date, y=df.confirmedCount,
marker=dict(color='#FFC125'),
mode = 'lines+markers',
name='確診',
xaxis='x2', yaxis='y2')
trace2 = go.Scatter(x=date, y=df.suspectedCount,
marker=dict(color='#FF0000'),
name='疑似',
mode = 'lines+markers',
xaxis='x2', yaxis='y2')
trace3 = go.Scatter(x=date, y=df.curedCount,
marker=dict(color='#ADFF2F'),
name='治愈',
mode = 'lines+markers',
xaxis='x2', yaxis='y2')
trace4 = go.Scatter(x=date, y=df.deadCount,
marker=dict(color='#1E1E1E'),
name='死亡',
mode = 'lines+markers',
xaxis='x2', yaxis='y2')
trace5 = go.Scatter(x=date, y=df.confirmedRise,
marker=dict(color='#FFC125'),
mode = 'lines+markers',
name='新增確診',
xaxis='x', yaxis='y')
trace6 = go.Scatter(x=date, y=df.suspectedRise,
marker=dict(color='#FF0000'),
name='新增疑似',
mode = 'lines+markers',
xaxis='x', yaxis='y')
trace7 = go.Scatter(x=date, y=df.curedRise,
marker=dict(color='#ADFF2F'),
name='新增治愈',
mode = 'lines+markers',
xaxis='x', yaxis='y')
trace8 = go.Scatter(x=date, y=df.deadRise,
marker=dict(color='#1E1E1E'),
name='新增死亡',
mode = 'lines+markers',
xaxis='x', yaxis='y')
figure.add_traces([trace1, trace2,trace3,trace4])
figure.add_traces([trace5, trace6,trace7,trace8])
figure['layout']['xaxis2'] = {}
figure['layout']['yaxis2'] = {}
figure.layout.yaxis.update({'domain': [0, .45]})
figure.layout.yaxis2.update({'domain': [.6, 1.]})
figure.layout.yaxis2.update({'title': '人數(shù)'})
figure.layout.yaxis.update({'title': '人數(shù)'})
figure.layout.xaxis2.update({'title': '日期'})
figure.layout.xaxis.update({'title': '日期'})
figure.layout.update({'height':900})
figure.update_layout(
title_text="疫情趨勢圖",
)
figure.update_layout(
hovermode="x",
template="plotly_white",
)
pyplt(figure, filename='example.html', show_link=False)
最后呈現(xiàn)效果如下
使用hovermode="x"了使得鼠標放置于一處時,將會顯示該日期下的所有數(shù)據(jù)冈涧。
文章最后
我們不是生活在一個和平地世界茂附,而是幸運地生活在一個和平地國家蝌以,這場沒有硝煙地戰(zhàn)爭,讓我們認清了敵人以及制度地短板何之,也誕生了一批這個時代地英雄跟畅,也讓世人見證中國速度,和國家凝聚力溶推。
我們有勢必穿越漫長黑夜地絕心徊件,也在積攢見到曙光與熾熱光明地力量!