期刊VIP學(xué)術(shù)指導(dǎo) 符合學(xué)術(shù)規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒有后顧之憂
來源:期刊VIP網(wǎng)所屬分類:期刊常識(shí)時(shí)間:瀏覽:次
作者:朱二莉; 宋智鴻; 戈夢(mèng)宇
摘要:文中首先對(duì)疫情數(shù)據(jù)可視化的項(xiàng)目需求進(jìn)行了背景分析,接著介紹了項(xiàng)目的總體設(shè)計(jì)思路,然后具體闡述了疫情數(shù)據(jù)庫的設(shè)計(jì)、疫情數(shù)據(jù)的查詢、疫情數(shù)據(jù)的展示,并分析了核心代碼。文中利用MySQL數(shù)據(jù)庫存放從官網(wǎng)爬取的疫情數(shù)據(jù),使用PHP技術(shù)查詢MySQL數(shù)據(jù)庫中的疫情數(shù)據(jù),實(shí)現(xiàn)網(wǎng)頁和數(shù)據(jù)庫的動(dòng)態(tài)交互,利用Echarts圖表技術(shù)進(jìn)行疫情數(shù)據(jù)的可視化,制作了疫情折線圖,用來展示疫情近期的變化趨勢(shì),制作了疫情柱形圖,用來展示各個(gè)國家的疫情對(duì)比情況,讓民眾更加直觀清晰地獲取關(guān)鍵的疫情信息、了解疫情形勢(shì)、判斷疫情走勢(shì),為疫情防控提供直觀、形象的數(shù)據(jù)支持。
關(guān)鍵詞:疫情數(shù)據(jù)查詢及可視化、Echarts圖表、MySQL數(shù)據(jù)庫、PHP技術(shù)
1背景
2020年,新冠病毒肆虐。疫情發(fā)生以來,全國上下步調(diào)一致、眾志成城、共抗疫情。全民抗疫的同時(shí),民眾需要一個(gè)能夠查看當(dāng)前疫情數(shù)據(jù)的渠道,以此充分了解全國各地乃至全世界的疫情形勢(shì)。本文綜合運(yùn)用PHP技術(shù)、MySQL數(shù)據(jù)庫技術(shù)、Echarts圖表技術(shù),制作疫情趨勢(shì)圖和疫情對(duì)比圖,用可視化的方式直觀形象地呈現(xiàn)疫情數(shù)據(jù),讓民眾更加直觀清晰地獲取關(guān)鍵的疫情信息。
2設(shè)計(jì)思路
折線圖和柱形圖,是最常見的疫情數(shù)據(jù)可視化的方式。折線圖容易看出數(shù)據(jù)的走向,因此適合展示疫情近期的變化趨勢(shì),而通過柱形圖則可以直觀地看出各個(gè)國家的疫情對(duì)比情況。項(xiàng)目的設(shè)計(jì)思路如下:
(1)從丁香園網(wǎng)站爬取疫情數(shù)據(jù),并利用MySQL數(shù)據(jù)庫技術(shù)存放每天爬取的疫情數(shù)據(jù);
(2)使用PHP技術(shù)實(shí)現(xiàn)網(wǎng)頁后端和MySQL數(shù)據(jù)庫的動(dòng)態(tài)交互,從數(shù)據(jù)中查詢疫情數(shù)據(jù),并輸出到網(wǎng)頁前端;
(3)在網(wǎng)頁前端使用Echarts折線圖展示疫情變化趨勢(shì),使用柱形圖展示各個(gè)國家疫情對(duì)比情況[1]。
3數(shù)據(jù)查詢
3.1數(shù)據(jù)庫設(shè)計(jì)
在MySQL數(shù)據(jù)庫中新建一個(gè)疫情數(shù)據(jù)庫data,在data中新建疫情數(shù)據(jù)表格summary;把從官網(wǎng)爬取的全世界的疫情數(shù)據(jù)導(dǎo)入到data數(shù)據(jù)庫的summary表中。summary表中包含的字段有:countryName(國家名稱)、current(現(xiàn)存確診人數(shù))、accumulate(累計(jì)確診總?cè)藬?shù))、healing(治愈總?cè)藬?shù))、die(死亡總?cè)藬?shù))、time(時(shí)間)。
3.2連接數(shù)據(jù)庫
編寫PHP文件link.php文件,存放在網(wǎng)站目錄的conn子目錄下。該文件負(fù)責(zé)連接data數(shù)據(jù)庫,核心代碼如下[2]:
$dbconn=mysqli_connect("localhost","Tom","123456") or die('服務(wù)器連接失敗!'); //連接MySQL服務(wù)器,登錄名為Tom,密碼為123456。
mysqli_select_db($dbconn,data') or die('疫情數(shù)據(jù)庫連接失敗!'); //選擇數(shù)據(jù)庫
mysqli_set_charset($dbconn,"utf8");//設(shè)置字符集為中文utf8標(biāo)準(zhǔn)
date_default_timezone_set("PRC");//設(shè)置時(shí)區(qū)為東八區(qū)北京時(shí)間
3.3 查詢近期中國疫情數(shù)據(jù)
編寫PHP文件trend.php,查詢中國近期疫情數(shù)據(jù),核心代碼如下所示:
require "./conn/link.php"; //導(dǎo)入數(shù)據(jù)庫連接文件link.php
$query="select * from summary where countryName='中國' order by time"; //定義一個(gè)SQL語句,該語句可以從summary表中查詢中國近期疫情數(shù)據(jù),并按照時(shí)間進(jìn)行升序排列。
$result = mysqli_query($dbconn,$query); //執(zhí)行查詢語句獲得結(jié)果集,結(jié)果集中存放的是中國的疫情數(shù)據(jù),包括了國家名,現(xiàn)存確診人數(shù)、累計(jì)確診總?cè)藬?shù)、治愈總?cè)藬?shù)、死亡總?cè)藬?shù)、時(shí)間。
while($info= mysqli_fetch_array($result)){ //從結(jié)果集中逐行讀取中國近期疫情數(shù)據(jù),寫入到數(shù)組中。創(chuàng)建數(shù)組的時(shí)候,每一個(gè)疫情信息對(duì)應(yīng)的鍵分別是countryName 、current、accumulate、healing、die、time。
$yq []= array(
'current'=>$info['current'], //從結(jié)果集中讀取現(xiàn)存確診,寫入數(shù)組
' accumulate '=>$info[' accumulate '], //從結(jié)果集中讀取累計(jì)確診,寫入數(shù)組
' healing '=>$info[' healing '], //從結(jié)果集中讀取治愈總?cè)藬?shù),寫入數(shù)組
'die'=>$info['die'], //從結(jié)果集中讀取死亡總?cè)藬?shù),寫入數(shù)組
'time'=>$info['time'] //從結(jié)果集中讀取時(shí)間,寫入數(shù)組
); }
$yqdata=json_encode($yq); //把疫情數(shù)組轉(zhuǎn)換為json格式的數(shù)據(jù)
echo $yqdata; //把json格式的疫情數(shù)據(jù)輸出到網(wǎng)頁前端
推薦閱讀:論抗擊疫情中公共管理主體的影響
如果您現(xiàn)在遇到期刊選擇、論文內(nèi)容改善、論文投稿周期長、難錄用、多次退修、多次被拒等問題,可以告訴學(xué)術(shù)顧問,解答疑問同時(shí)給出解決方案 。