泉州信息工程學院
軟件學院
課程設計報告書
課 程 名: Python
課程設計項目名稱: 數據分析與可視化
團隊成員: 吳清嵐 吳夢雲
一、項目簡介
本項目采用Numpy、Pandas、pyecharts等數據庫,基於flask框架實現網站,調用Line()方法進行近年薪資變化折線圖的繪制,調用pie()方法繪制3個年份薪資前五的大學餅圖,運用for語句實現循環體,調用map()方法進行中國省份薪資比較圖,粗略的完成對大學生薪酬的部分數據分析與可視化,讓人們對大學生薪酬有更加直觀、深入的理解。在數據處理的過程中,使用圖表、圖形將數據的趨勢差別相關性等關系展示出來,有助於人們對數據的理解與分析,特別對於一些高維度、高復雜度的數據,創建可視化圖表對分析過程非常有益。此外,在展示數據結論時,清晰准確的圖表或圖形將是一種非常恰當的表達手段,“好的圖表勝於千萬的文字描述”。
1.1 項目博客地址
https://www.cnblogs.com/wql4024/
1.2 項目完成的功能與特色
功能:
導入Numpy、Pandas、pyecharts等數據庫,調用Line()方法、調用pie()方法、調用map()方法、運用for語句實現循環體實現中國地圖薪資分布、折線圖、餅圖以及獲取Excel表中的數據
特色:
運用Line()方法、調用pie()方法、調用map()方法、for語句實現循環體,運用網址鏈接進行動態可視化
1.3 項目采用的技術棧
1、Python語言:Python是一種計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨着版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
2、NumPy:NumPy是Python的一種開源的數值計算擴展。這種工具可用來存儲和處理大型矩陣,是矩陣計算與其它大多數框架的數據處理基礎。
3、Flask:Flask是一個基於Python開發並且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架,對於Werkzeug本質是Socket服務端,其用於接收http請求並對請求進行預處理,然后觸發Flask框架,開發人員基於Flask框架提供的功能對請求進行相應的處理,並返回給用戶,如果要返回給用戶復雜的內容時,需要借助jinja2模板來實現對模板的處理,即:將模板和數據進行渲染,將渲染后的字符串返回給用戶瀏覽器。
4、Pandas:pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標准的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。
5、pyecharts: 是一個用於生成 Echarts 圖表的類庫。 Echarts是百度開源的一個數據可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒,為了與 Python 進行對接,方便在 Python 中直接使用數據生成圖。
1.4 項目借鑒源代碼的地址
https://github.com/David-Github_Project/Python-Curriculum-Resources
1.5 團隊成員任務分配表
姓名 |
吳清嵐 |
吳夢雲 |
任務分配 |
大部分框架以及頁面的完成 各個年份餅狀圖 |
部分框架以及頁面的完成 折線圖、中國地圖以及測試 |
二、項目的需求分析
數據分析是指用適當的統計分析方法對收集來的大量數據進行分析,提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。這一過程也是質量管理體系的支持過程。在本次項目中,我們通過對2013/2015/2017年中國各省大學生薪酬的比較分析,對這些各個大學學生畢業后出來工作的薪酬有整體的直觀的了解;發現大學這些年薪酬的排名是否產生變化,變化的程度如何,是否一直進步等,可幫助人們作出判斷,以便采取適當行動。
2.1項目功能架構圖、主要功能流程圖
2.1.1項目功能架構圖:
2.1.2 主要功能流程圖:
三、系統模塊說明
3.1 系統模塊列表:
測試
各個年份餅狀圖
折線圖
中國地圖
3.2 各模塊詳細描述(名稱,功能,運行截圖,關鍵源代碼)
3.2.1、功能:可視化
運行截圖:
運行代碼:
@app.route("/index")
def index():
return render_template("index.html")
@app.route("/data", methods=['GET', 'POST'])
def getValues():
return render_template("sf_salary.html")
3.2.2、名稱:2013年薪酬前五(餅圖)
功能:實現2013年薪酬前五的大學
運行截圖:
關鍵源代碼:
3.2.2、
名稱:2015年薪酬前五(餅圖)
功能:實現2015年薪酬前五的大學
運行截圖:
關鍵源代碼:
3.2.3
名稱:2017年薪酬前五(餅圖)
功能:實現2017年薪酬前五的大學
運行截圖:
關鍵源代碼:
3.2.4
名稱:近年薪酬平均值變化(折線圖)
功能:實現2013-2017年大學生薪酬平均值變化
運行截圖:
關鍵源代碼:
3.2.5
名稱:省份薪資比較(中國地圖)
功能:實現中國各省大學生薪資比較圖
運行截圖:
關鍵源代碼:
四、項目總結
經過幾個星期的學習和奮斗,我們成功完成了對課程成績表和大學學術排名表的部分數據分析與可視化,用Python語言編寫代碼,用Line()等方法繪制圖形。對Python語言的應用更加成熟,對數據分析和可視化有了進一步理解,對庫的使用也有了新的想法,學到了新的知識,將Python的理論與實踐結合起來運用,收獲頗多。在此過程中,我們也遇到了很多困難,代碼一直出錯,中文亂碼,錯誤的原因找不到等一系列問題,但通過請教同學和依靠強大的百度搜索,終於成功解決問題,在數據分析與可視化的道路上又前進了一小步。虛心向別人請教會獲得很多自己不知道的知識,團隊合作也讓我們認識到了團隊的重要性,自己的職責。正所謂,“眾人拾柴火焰高”,團結才能獲得成功,合作才能共贏。
五、
5.1 特點
導入Numpy、Pandas、pyecharts等數據庫,調用Line()方法、調用pie()方法、調用map()方法、運用for語句實現循環體實現中國地圖薪資分布、折線圖、餅圖以及獲取Excel表中的數據,調用網站實現可視化。
5.2 不足之處
技術含量低,容易被模仿;數據分析得不夠具體,還有很多圖沒有繪制。閱歷少、經驗淺,考慮不夠周全,缺乏應變能力,專業知識不夠豐富。
名稱:測試
功能:可視化
關鍵源代碼:
運行代碼:
@app.route("/index")
def index():
return render_template("index.html")
@app.route("/data", methods=['GET', 'POST'])
def getValues():
return render_template("sf_salary.html")