999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Echarts的疫情數(shù)據(jù)可視化技術(shù)研究

2020-12-04 02:53:22朱二莉宋智鴻戈夢宇
甘肅科技縱橫 2020年10期

朱二莉 宋智鴻 戈夢宇

摘要:文中首先對疫情數(shù)據(jù)可視化的項目需求進行了背景分析,接著介紹了項目的總體設(shè)計思路,然后具體闡述了疫情數(shù)據(jù)庫的設(shè)計、疫情數(shù)據(jù)的查詢、疫情數(shù)據(jù)的展示,并分析了核心代碼。文中利用MySQL數(shù)據(jù)庫存放從官網(wǎng)爬取的疫情數(shù)據(jù),使用PHP技術(shù)查詢MySQL數(shù)據(jù)庫中的疫情數(shù)據(jù),實現(xiàn)網(wǎng)頁和數(shù)據(jù)庫的動態(tài)交互,利用Echarts圖表技術(shù)進行疫情數(shù)據(jù)的可視化,制作了疫情折線圖,用來展示疫情近期的變化趨勢,制作了疫情柱形圖,用來展示各個國家的疫情對比情況,讓民眾更加直觀清晰地獲取關(guān)鍵的疫情信息、了解疫情形勢、判斷疫情走勢,為疫情防控提供直觀、形象的數(shù)據(jù)支持。

關(guān)鍵詞:疫情數(shù)據(jù)查詢及可視化、Echarts圖表、MySQL數(shù)據(jù)庫、PHP技術(shù)

中圖分類號:TP31????? 文獻標(biāo)識碼:B

1背景

2020年,新冠病毒肆虐。疫情發(fā)生以來,全國上下步調(diào)一致、眾志成城、共抗疫情。全民抗疫的同時,民眾需要一個能夠查看當(dāng)前疫情數(shù)據(jù)的渠道,以此充分了解全國各地乃至全世界的疫情形勢。本文綜合運用PHP技術(shù)、MySQL數(shù)據(jù)庫技術(shù)、Echarts圖表技術(shù),制作疫情趨勢圖和疫情對比圖,用可視化的方式直觀形象地呈現(xiàn)疫情數(shù)據(jù),讓民眾更加直觀清晰地獲取關(guān)鍵的疫情信息。

2設(shè)計思路

折線圖和柱形圖,是最常見的疫情數(shù)據(jù)可視化的方式。折線圖容易看出數(shù)據(jù)的走向,因此適合展示疫情近期的變化趨勢,而通過柱形圖則可以直觀地看出各個國家的疫情對比情況。項目的設(shè)計思路如下:

(1)從丁香園網(wǎng)站爬取疫情數(shù)據(jù),并利用MySQL數(shù)據(jù)庫技術(shù)存放每天爬取的疫情數(shù)據(jù);

(2)使用PHP技術(shù)實現(xiàn)網(wǎng)頁后端和MySQL數(shù)據(jù)庫的動態(tài)交互,從數(shù)據(jù)中查詢疫情數(shù)據(jù),并輸出到網(wǎng)頁前端;

(3)在網(wǎng)頁前端使用Echarts折線圖展示疫情變化趨勢,使用柱形圖展示各個國家疫情對比情況[1]

3數(shù)據(jù)查詢

3.1數(shù)據(jù)庫設(shè)計

在MySQL數(shù)據(jù)庫中新建一個疫情數(shù)據(jù)庫data,在data中新建疫情數(shù)據(jù)表格summary;把從官網(wǎng)爬取的全世界的疫情數(shù)據(jù)導(dǎo)入到data數(shù)據(jù)庫的summary表中。summary表中包含的字段有:countryName(國家名稱)、current(現(xiàn)存確診人數(shù))、accumulate(累計確診總?cè)藬?shù))、healing(治愈總?cè)藬?shù))、die(死亡總?cè)藬?shù))、time(時間)。

3.2連接數(shù)據(jù)庫

編寫PHP文件link.php文件,存放在網(wǎng)站目錄的conn子目錄下。該文件負責(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è)置時區(qū)為東八區(qū)北京時間

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"; //定義一個SQL語句,該語句可以從summary表中查詢中國近期疫情數(shù)據(jù),并按照時間進行升序排列。

$result = mysqli_query($dbconn,$query); //執(zhí)行查詢語句獲得結(jié)果集,結(jié)果集中存放的是中國的疫情數(shù)據(jù),包括了國家名,現(xiàn)存確診人數(shù)、累計確診總?cè)藬?shù)、治愈總?cè)藬?shù)、死亡總?cè)藬?shù)、時間。

while($info= mysqli_fetch_array($result)){ //從結(jié)果集中逐行讀取中國近期疫情數(shù)據(jù),寫入到數(shù)組中。創(chuàng)建數(shù)組的時候,每一個疫情信息對應(yīng)的鍵分別是countryName 、current、accumulate、healing、die、time。

$yq []= array(

'current'=>$info['current'],? //從結(jié)果集中讀取現(xiàn)存確診,寫入數(shù)組

' accumulate '=>$info[' accumulate '], //從結(jié)果集中讀取累計確診,寫入數(shù)組

' healing '=>$info[' healing '], //從結(jié)果集中讀取治愈總?cè)藬?shù),寫入數(shù)組

'die'=>$info['die'], //從結(jié)果集中讀取死亡總?cè)藬?shù),寫入數(shù)組

'time'=>$info['time'] //從結(jié)果集中讀取時間,寫入數(shù)組

); }

$yqdata=json_encode($yq); //把疫情數(shù)組轉(zhuǎn)換為json格式的數(shù)據(jù)

echo $yqdata; //把json格式的疫情數(shù)據(jù)輸出到網(wǎng)頁前端

3.4查詢當(dāng)天世界疫情數(shù)據(jù)

編寫world.php文件,查詢當(dāng)天世界疫情數(shù)據(jù),核心代碼和查詢近期中國疫情數(shù)據(jù)基本相同,僅是查詢語句有所不同,查詢當(dāng)天世界疫情數(shù)據(jù)的SQL語句如下:

$t=date('Y-m-d');//創(chuàng)建系統(tǒng)當(dāng)前時間

$sql="select * from summary where time=$t order by accumulate ";//從summary表中查詢當(dāng)天世界疫情數(shù)據(jù),并按照累計確診進行升序排序。

4制作疫情趨勢圖

百度Echarts是一個基于Canvas的純Javascript圖表庫,提供了生動、直觀、交互性的、可高度個性化定制的Web可視化圖表,如地圖、折線圖、柱形圖等。在本文中,采用折線圖來直觀呈現(xiàn)近期疫情的變化趨勢。疫情趨勢圖(以中國現(xiàn)存確診和累計確診為例)的制作步驟及對應(yīng)的核心代碼如下所示[3]

(1)引入jQuery、Echarts

jquery.js、echarts.min.js這兩個文件都存放在了網(wǎng)站根目錄的jssrc子目錄下。

(2)為疫情趨勢圖準(zhǔn)備一個具有高寬的Dom容器

//創(chuàng)建一個div用來存放疫情趨勢圖。

(3)基于準(zhǔn)備好的trendChina,初始化疫情趨勢圖

var? trend = echarts.init(document.getElementById('trendChina'));

(4)設(shè)置疫情趨勢圖的配置項,最關(guān)鍵的是疫情數(shù)據(jù)的動態(tài)加載:采用$.ajax方法把時間動態(tài)加載到趨勢圖的X軸上,把現(xiàn)存確診和累計確診加載到series數(shù)據(jù)系列區(qū)域。這個趨勢圖的X軸是分類軸,Y軸是數(shù)值軸,因此xAxis的type屬性值是category,yAxis的type屬性值是value。找到xAxis屬性,設(shè)置data屬性,用ajax技術(shù)在X軸上動態(tài)加載疫情時間,核心代碼如下[4]

$.ajax({

type : "post",??? //請求方式是post

url : "trend.php",//請求地址是trend.php,該文件可以從數(shù)據(jù)庫中查詢近期中國疫情數(shù)據(jù),查詢得到的數(shù)據(jù)格式是json格式。

dataType : "json",//請求之后返回的數(shù)據(jù)格式是json

success : function(result) {

if (result) {

for(var j=0;j

array.push(result[j].time); //如果請求成功,就在for循環(huán)中依次從查詢結(jié)果中讀取疫情時間,并寫入到數(shù)組array中。

}}}

return array;?? //返回數(shù)組,完成X軸上時間的動態(tài)加載

})()

動態(tài)加載現(xiàn)存確診、累計確診,只需要在series配置項中找到對應(yīng)的數(shù)據(jù)系列,設(shè)置type: "line"(折線圖),然后設(shè)置data配置項即可。加載方法和動態(tài)加載時間大同小異,仍然采用ajax加載,加載現(xiàn)存確診時需要從結(jié)果集中獲取現(xiàn)存確診并寫入數(shù)組中:array.push(result[j]. current);而加載累積確診時需要從結(jié)果集中獲取累積確診并寫入數(shù)組中:array.push(result[j]. accumulate);

(5)使用剛指定的配置項和數(shù)據(jù)顯示圖表

trend.setOption(trendoption);

疫情趨勢圖網(wǎng)頁運行效果如圖1所示:

5制作疫情對比圖

各個國家的疫情對比情況采用Echarts柱形圖來展示(以各個國家累計確診對比圖為例)。這個柱形圖的Y軸是分類軸,X軸是數(shù)值軸,因此yAxis的type屬性值是category,xAxis的type屬性值是value。找到y(tǒng)Axis屬性,設(shè)置data屬性,用ajax技術(shù)在y軸上動態(tài)加載國家名稱。核心代碼如下所示[5]

$.ajax({

type : "post",??? //請求方式是post

url : "world.php",//請求地址是world.php,該文件可以從數(shù)據(jù)庫中查詢當(dāng)天世界疫情數(shù)據(jù),查詢得到的數(shù)據(jù)格式是json格式。

dataType : "json",//請求之后返回的數(shù)據(jù)格式是json

success : function(result) {

if (result) {

for(var j=0;j

arr.push(result[j].countryName);//如果請求成功,就在for循環(huán)中依次從查詢結(jié)果中讀取國家名稱,并寫入到數(shù)組arr中。

}}}

return array;?? //返回數(shù)組,完成Y軸上國家名稱的動態(tài)加載

})()

動態(tài)加載累計確診,只需要在series配置項中找到對應(yīng)的累計確診數(shù)據(jù)系列,設(shè)置type: "bar"(柱形圖),然后設(shè)置data配置項即可。加載方法和動態(tài)加載國家名大同小異,仍然采用ajax加載,加載累計確診時需要從結(jié)果集中獲取各個國家的累計確診數(shù)字并寫入數(shù)組中:arr.push(result[j]. accumulate) [6];

累計確診疫情對比圖網(wǎng)頁運行效果如圖2所示:

6總結(jié)

大數(shù)據(jù)技術(shù)在疫情宣傳、疫情防控、復(fù)工復(fù)產(chǎn)等方面都發(fā)揮著重要的作用,而數(shù)據(jù)可視化技術(shù),作為大數(shù)據(jù)的一種有效的表現(xiàn)形式,更是滿足了民眾對疫情信息的獲取和查看需求。本文綜合利用PHP、MySQL、Echarts圖表技術(shù),制作了疫情趨勢圖和疫情對比圖,幫助民眾了解疫情形勢、判斷疫情走勢,為疫情防控提供直觀、形象的數(shù)據(jù)支持。

參考文獻:

[1]冀瀟,李揚. 采用ECharts可視化技術(shù)實現(xiàn)的數(shù)據(jù)體系監(jiān)控系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2017,022(6):72-76.

[2]趙海國.Ajax技術(shù)支持下的ECharts動態(tài)數(shù)據(jù)實時刷新技術(shù)的實現(xiàn)[J].電子技術(shù),2018,000(000)3:25-27.

[3]洪敏,吳紅亞,楊保華.基于HTML的Echarts的動態(tài)數(shù)據(jù)顯示前端設(shè)計[J].計算機時代,2018, (000)8:27-29.

[4]周瑋祎.基于ECharts的市場分析設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2019, (45)12:101-105.

[5]黑馬程序員. PHP+Ajax+jQuery網(wǎng)站開發(fā)項目式教程[M].北京:人民郵電出版社,2016.

[6]黑馬程序員. PHP+MySQL網(wǎng)站開發(fā)項目式教程[M].北京:人民郵電出版社,2019.

作者簡介:朱二莉(1980—),女,漢族,籍貫江蘇省睢寧縣,蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院教師,職稱講師,碩士研究生學(xué)位,研究方向為軟件開發(fā)、網(wǎng)絡(luò)技術(shù)。

主站蜘蛛池模板: 亚洲码一区二区三区| 國產尤物AV尤物在線觀看| 特级做a爰片毛片免费69| 免费毛片全部不收费的| 国产成人综合在线观看| 色综合五月| 日本午夜网站| 无码高清专区| 亚洲最大综合网| 亚洲资源站av无码网址| 免费观看欧美性一级| 久久综合色88| 在线观看国产精品日本不卡网| 国产xxxxx免费视频| 亚洲最大福利视频网| 欧美激情首页| 伊人久久青草青青综合| 曰韩免费无码AV一区二区| 成人免费一级片| 99这里只有精品在线| 欧美中文字幕在线播放| 福利国产微拍广场一区视频在线| 夜夜操国产| 欧洲一区二区三区无码| 青青青伊人色综合久久| 国产成人91精品| 四虎亚洲精品| 日本午夜三级| 国产成人永久免费视频| 99久久国产综合精品2020| 国产激情无码一区二区APP| 亚洲高清国产拍精品26u| 久久鸭综合久久国产| 欧美精品v欧洲精品| 亚洲电影天堂在线国语对白| 好紧太爽了视频免费无码| 97se亚洲综合在线天天| 久久人搡人人玩人妻精品一| P尤物久久99国产综合精品| 国产91丝袜在线播放动漫 | 国产91精品久久| 亚洲男女在线| 亚洲第一色视频| 欧美国产综合色视频| 欧美日韩国产在线人成app| 亚洲天堂2014| 久久96热在精品国产高清| 国产无遮挡猛进猛出免费软件| 无码专区国产精品一区| 尤物精品国产福利网站| 国产成人高清在线精品| 漂亮人妻被中出中文字幕久久| 亚洲成人网在线观看| 成人另类稀缺在线观看| 天堂久久久久久中文字幕| 欧美另类视频一区二区三区| 久久精品女人天堂aaa| 日韩精品毛片人妻AV不卡| 国产日本一区二区三区| 国产尤物视频网址导航| 91香蕉视频下载网站| 91在线激情在线观看| 在线观看免费国产| 亚洲精品综合一二三区在线| 成人国产精品网站在线看| 伊人婷婷色香五月综合缴缴情| 中文字幕66页| 美女扒开下面流白浆在线试听| 亚洲第一成年网| 欧美不卡在线视频| 大香伊人久久| 国产欧美日韩18| 欧美成人免费一区在线播放| 国产日韩欧美在线视频免费观看| 日韩性网站| 鲁鲁鲁爽爽爽在线视频观看| 国产国产人成免费视频77777 | 亚洲a级在线观看| 成人字幕网视频在线观看| 亚洲中文无码av永久伊人| 午夜a视频| h视频在线观看网站|