周洪斌 陳立平 劉連浩
(沙洲職業(yè)工學院,江蘇 張家港 215600)
數(shù)據(jù)是枯燥、抽象的,而圖形、圖像卻富有表現(xiàn)力和生動性。數(shù)據(jù)可視化將各種數(shù)據(jù)用圖形化的方式展示,為數(shù)據(jù)分析提供了更加直觀的顯示方式[1],是人們理解數(shù)據(jù)、詮釋數(shù)據(jù)的重要手段和途徑。ECharts是國內(nèi)百度公司推出的一款開源大數(shù)據(jù)可視化工具[2],具備千億級數(shù)據(jù)可視化渲染能力,支持折線圖、餅圖、熱力圖、漏斗圖、詞云圖等豐富的可視化類型,支持二維表、鍵值對等多種數(shù)據(jù)格式,并且具有數(shù)據(jù)的動畫展示、三維展示功能,已在國家統(tǒng)計局、國家電網(wǎng)、阿里巴巴、華為等眾多機構(gòu)和企業(yè)使用。2018年,全球頂級開源社區(qū)Apache基金會宣布 “百度開源的ECharts項目全票通過進入Apache孵化器” ,ECharts發(fā)展進入快車道。
ECharts由JavaScript實現(xiàn),使用非常方便,從官網(wǎng)https://echarts.apache.org/zh/download.html下載安裝包,解壓得到echarts.js文件,與HTML文件放到同一目錄下,在HTML文件中通過下面的代碼引用echarts.js文件,即可使用ECharts。
ECharts的常用組件包括標題、坐標軸、數(shù)據(jù)系列、圖例等,具體說明如表1所示。
表1 ECharts常用組件
按照表1的說明,使用ECharts組件顯示某地區(qū)2020年1-3季度農(nóng)業(yè)產(chǎn)值柱形圖,代碼如下:
圖1 使用ECharts展示某地區(qū)2020年1-3季度農(nóng)業(yè)產(chǎn)值柱形圖
pyecharts是一款Python與ECharts結(jié)合的可視化工具,用于大數(shù)據(jù)可視化??梢酝ㄟ^下面的命令安裝pyecharts:
使用pyecharts實現(xiàn)圖1所示的柱形圖。
(1)導(dǎo)入pyecharts繪制柱形圖所需的模塊
(2)提供要顯示的數(shù)據(jù)
(3)設(shè)置柱形圖的X軸以及Y軸數(shù)據(jù)
(4)設(shè)置標題以及坐標軸名稱
(5)展示圖形
借助Python強大的數(shù)據(jù)獲取能力,結(jié)合pyecharts,可以實現(xiàn)數(shù)據(jù)的自動爬取、可視化展示。
網(wǎng)站http://www.pm25x.com/提供全國各大城市PM2.5指數(shù)和空氣質(zhì)量指數(shù)實時監(jiān)測數(shù)據(jù)查詢[3],包括每個監(jiān)測點發(fā)布的AQI指數(shù)、首要污染物、空氣污染狀況和變化等信息,數(shù)據(jù)1小時更新一次。我們可以通過Python爬取某個城市各個監(jiān)測點的PM2.5數(shù)據(jù)。
以爬取南京市各個監(jiān)測點的PM2.5數(shù)據(jù)為例,打開頁面http://www.pm25x.com/city/nanjing.htm,可以看到如圖2所示的某個時刻南京市各個監(jiān)測點的PM2.5數(shù)據(jù)。
分析該頁面結(jié)構(gòu),各個監(jiān)測點的信息是以表格的形式顯示的,部分代碼如下:
圖2 某時刻南京市各個監(jiān)測點的PM2.5數(shù)據(jù)
因此,可以用requests包爬取網(wǎng)頁內(nèi)容,然后使用BeautifulSoup對網(wǎng)頁進行解析[4],獲取表格中的數(shù)據(jù)。需要注意的是,表頭數(shù)據(jù)不是我們所需要的,提取時要略過表頭。
(1)導(dǎo)入包
(2)定義X軸、Y軸數(shù)據(jù)
(3)爬取數(shù)據(jù)
#獲取表格所有行并略過表頭
將上一步爬取的數(shù)據(jù)通過pyecharts展示,效果如圖3所示。
圖3 某時刻南京市各監(jiān)測點的PM2.5數(shù)據(jù)可視化展示圖
主要步驟如下:
(1)設(shè)置折線圖的X軸以及Y軸數(shù)據(jù)
(2)設(shè)置圖形標題以及X軸、Y軸名稱
(3)展示圖形
通過數(shù)據(jù)可視化將枯燥的數(shù)據(jù)以直觀、友好的方式展現(xiàn)出來,可以使數(shù)據(jù)變得更加通俗易懂,改善數(shù)據(jù)分析效果。大數(shù)據(jù)時代,數(shù)據(jù)可視化的需求越來越大,依靠可視化手段進行數(shù)據(jù)分析已成為大數(shù)據(jù)分析的主要環(huán)節(jié)之一。ECharts提供了直觀、生動、可交互、可高度個性化定制的數(shù)據(jù)可視化圖表,pyecharts將Python與ECharts相結(jié)合,可以實現(xiàn)數(shù)據(jù)爬取、處理及可視化,使數(shù)據(jù)呈現(xiàn)更加快捷、靈活、高效。