謝曉偉,陳君艷,鄭麗,包琦






摘要:隨著信息革命的深入推進,信息技術與經濟社會的交匯融合,引發了數據的迅猛增長,數據已經成了國家基礎戰略性資源,大數據日漸對經濟運行機制、社會生活方式和國家治理能力產生重要影響。如何對已經掌握的數據開展分析,脫去其枯燥的“外衣”,以直觀形式呈現成為研究熱點。該項目對脫貧人口現狀、致貧原因和扶貧資金投入產出情況等數據進行了收集及可視化呈現,精準扶貧檔案伴隨著精準扶貧工作同步形成,為預防在全面實現脫貧后返貧,鞏固脫貧成果并有效銜接鄉村振興戰略提供數據支持。
關鍵詞:預防返貧;Matplotlib;可視化技術;Python語言
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)34-0034-03
1概述
筆者在開展江蘇省泰州市2019年科技支撐計劃(社會發展)項目《信息化技術在“精準扶貧”工作中的應用和研究》項目的同時,對于采集的相關數據進行了數據可視化的相關研究,依托Python編程語言以及其強大的第三方庫,對枯燥的數據進行分析,讓其以圖形化方式靈動地呈現在用戶面前,讓用戶更加直觀地去理解和分析致貧的原因,有效的控制返貧的風險,為返貧治理提供決策支持,對于其他地區相同領域工作是具有一定借鑒意義的。
2相關技術簡介
2.1Python語言
Python作為一門解釋型高級動態編程語言,它具有跨平臺、開源、免費等眾多優點,已經成為最受歡迎的程序設計語言之一。Python是完全面向對象的語言,它的對象包括函數、模塊、數字、字符串等,并且完全支持面向對象語言的繼承、重載、派生、多態等特性,有益于增強源代碼的復用性。Python除了有強大的標準庫以外,還有豐富的第三方庫,這也確保了Python語言的不斷發展,這些第三方庫主要包括了Web框架、科學計算、GUI和其他一些方面,可以讓使用者基于這些庫快速開展工作,本文的研究過程中作者也是用到了很多標準庫與第三方庫的內容。
2.2 NumPy庫
NumPy(Numerical Python)是Python程序設計語言的一個擴展程序庫,它支持大量的維度數組與矩陣的運算,運行速度非???,包括一個強大的N維數組對象 ndarray、廣播功能函數、整合C/C++/Fortran 代碼的工具以及線性代數、傅里葉變換、隨機數生成等功能,因為本文的研究基于大量的數據分析和可視化,因此需要使用NumPy庫。
2.3 Matplotlib庫
Matplotlib是Python的繪圖庫,常常與NumPy庫一起使用。Matplotlib早期是為了癲癇病人的腦皮層電圖相關信號的可視化而研究出來的,它在函數設計上參考了在函數的設計上參考了MATLAB,為Python構建一個Matlab式的繪圖接口,因此取名叫作Matplotlib[1]。Matplotlib的圖像都位于Figure對象中,使用者利用它可以快速創建海量類型的2D圖表和一些基本的3D圖表,可根據數據集(DataFrame,Series)自行定義x,y軸,繪制圖形,諸如柱狀圖、密度圖、直方圖、線形圖、散點圖等等,能夠滿足本文研究的大部分需要。
2.4 Pyecharts庫
Echarts是百度公司創建,通過Java Script實現的一個可視化的開源庫,可以在PC或移動設備上流暢運行,兼容性極高。而Pyecharts是為了與Python 進行對接,能夠在 Python中生成獨立的網頁,展示數據生成圖,也可以在flask、django中集成使用。
3基于Python數據可視化實例的實現
項目對于數據的處理通過了三個層次實現,分別是采集層、分析層和展示層。采集層利用筆者建設的精準扶貧信息系統,采用信息化技術對不同應用場景的數據進行采集,按照不同的分析主題分區進行存儲,并進行了簡單的數據清洗;分析層對于采集層所采集的數據,要按照不同的分析主題進行進一步的數據清洗和分析,在這里筆者采用了Python中的Numpy和Pandas兩個工具庫,用來處理數據結構和運算,另外通過scikit-learn和Tensorflow 庫來進行數據挖掘與建模,實現數據預處理、分類、回歸、降維、模型選擇等;展示層則是數據可視化的最終成果,筆者通過Matplotlib[2]、Pyecharts等工具庫的應用,對分析層所分析的數據進行圖形化展示,以另一個維度來觀察數據,可以清晰地發現隱藏在數據中間的重要信息。因為本文是對數據展示形式的研究,下面介紹幾個圖形化展示實例的實現過程。
3.1脫貧數據的直觀展現,提升管理者治理有效
建檔貧困檔案作為“精準扶貧”的一個重要指標,在筆者開展《信息化技術在“精準扶貧”工作中的應用和研究》項目中,搭建了精準扶貧信息系統,其中根據泰州市實際采集了2018年各區(市)脫貧人口數,總計脫貧人員7.25萬人,為了直觀展現,筆者通過Pyecharts[3]庫采用地圖形式展現,效果如圖1所示。
本用例通過泰州區域地圖形式直觀展示出泰州市脫貧人口的分布情況,以不同的顏色展示,由藍到紅表示脫貧人口的絕對數從小到大,可以從宏觀上了解各個縣(市、區)脫貧攻堅取得的成果,也可以通過鼠標的點擊獲取詳細信息,并能夠實現數據往下鉆取。
通過貧困地圖可以更直觀地反映出全省各地區貧困分布情況,針對較為貧困的地區,深入分析和研究當地致貧的原因[4],作為鄉村振興工作的宏觀指引;隨著扶貧工作的進一步深入,貧困檔案逐步建立,脫貧攻堅完成后,貧困檔案將進一步提升管理者鄉村治理的能力,并有效預防該地區返貧的風險,對各地區、各層級的鄉村振興工作進行微觀指導。宏觀與微觀二者有機結合,進一步優化了鄉鎮振興工作的開展。
其代碼實現如圖2所示,因涉及數據安全考慮,代碼實現中均采用虛擬靜態數據源,下同。
3.2 扶貧資金投入與產出的直觀展現,助力鄉村產業興旺
對于扶貧資金的支持,相關部門按月都會統計投入與產出效益的比較,在筆者設計的精準扶貧系統中也將此類數據作為采集的重點,用于對扶貧資金投入產出的考核,為方便直觀展示,筆者對此進行了一個雙折線圖的設計,效果如圖3所示。
本用例通過雙折線圖的形式,分月度將扶貧資金投入產出的比較清晰展現出來,用藍色折線表示扶貧資金的投入,用橙色折線表示產出的效益,當藍色折線在橙色折線上方時,表示投入是大于產出的,當藍色折線在橙色折線下方時,表示產出是大于投入的。通過此折線圖4,可以了解到扶貧資金帶來的實際效益規模,同時有效進行了扶貧資金的監管,對于長期投入高于產出的項目可以進一步分析原因,甚至終止項目,管理者通過圖形更加容易發現適合本區域發展的項目,大力發展高回報率的項目,實現產業興旺的目的,為鄉村振興目標提供了有力項目支撐。其代碼實現如圖4所示。
3.3 致貧原因的直觀展現,預防脫貧人口返貧
對于致貧原因,筆者在研究中注意到,主要有因病、因學、因殘、因災、缺技術、缺資金等多方面因素,根據精準扶貧系統中采集的致貧原因數據,筆者通過雷達圖展現的方式,可以直觀反映某一地區致貧的情形,效果如圖5所示。
本用例通過雷達圖(或稱蜘蛛網圖)分析某村貧困人口的致貧原因,可以有效掌握一個地區致貧的主要原因,開展有針對性的幫扶工作,開展扶貧與扶志、扶智相結合,同時根據圖中所示的“短板”,采用“補短板”方式,有效化解該地區致貧因素,進一步鞏固了脫貧攻堅的成果,做到有的放矢[5],能夠在返貧上起到有針對性的預防,為鄉村振興掃清了因各類因素而返貧的障礙,確保鄉村振興工作能夠有序開展。其代碼實現如圖6所示。
4 結論
本文以建立貧困檔案的研究為出發點,通過對各級各類貧困數據的研究和分析,引出基于Python技術的數據呈現在精準扶貧,以及脫貧攻堅勝利后預防返貧工作中帶來更直觀的決策依據。
Python語言在對數據分析和數據可視化方面的功能十分強大,除了Pyecharts、Matplotlib[6]等庫以外,常用的還有Seaborn、Plotly、Bokeh[7]等,筆者借開展精準扶貧課題的研究對數據可視化進行了淺顯的嘗試。本文通過三個數據可視化實例的實現,拋磚引玉,期待同行共同研究,在大數據急速發展的今天,利用Python數據可視化的優勢,為行業發展提供有力的可視化數據支撐。
參考文獻:
[1] 賈利娟,劉娟,王健,等.基于PyEcharts的全球玉米貿易數據可視化系統建設及應用展望[J].農業展望,2019,15(3):46-54.
[2] 劉大成.Python 數據可視化之matploitlib實踐[M].北京:電子工業出版社,2018.
[3] (愛爾蘭)Igor Milovanovic. Python數據可視化編程實戰[M]. 顓清山,譯.北京:人民郵電出版社,2015.
[4] Julie Steele,Noah Iliinsky.數據可視化之美[M]. 祝洪凱,李妹芳,譯.北京:機械工業出版社,2011.
[5] 鄭戟明,柳青.Echarts在數據可視化課程中的應用[J].電腦知識與技術,2020,16(2):9-11.
[6] 李天輝.基于python的數據分析可視化研究與實現[J].電子測試,2020(20):78-79.
[7] 趙佳慧.面向鄉村振興的精準扶貧檔案價值實現研究[D].河北:河北大學,2021.
【通聯編輯:代影】